使用 G-WAN 上传文件



我正在尝试将带有XMLHttpRequest和FormData API的图像文件上传到我的G-WAN服务器,但我无法检索文件内容。以下是h_entities的输出:

-----------------------------75940917410019849751723987620 Content-Disposition: form-data; name="test_param" test_value 
-----------------------------75940917410019849751723987620 Content-Disposition: form-data; name="uploadedFile"; filename="test.png" Content-Type: image/png PNG

"内容类型"是多部分/表单数据。有没有人设法将文件上传到 G-WAN?我找不到例子。谢谢!

我花了几个小时为 G-WAN v3.10+ 编写了一个专门的示例,称为entity.html(一个带有[browse]按钮的表单,用于POST文件),它将调用entity.cservlet(它报告有关POST实体的所有内容并列出其前 1,000 个字节)。

您的 G-WAN 版本 3.3 将遇到的第一件事是 POST 实体大小限制 - 您将收到 HTTP 错误 413(请求实体太大)。

我写了一个名为entity_size.c的 servlet 示例来展示如何修改此限制(这可以在处理程序或 servlet 中随时完成)。

您必须做的第二件事(使用 G-WAN v3.10+ 自动完成)是加载尚未加载 HTTP 请求的实体的任何缺失部分(在 v3.3 中,这将需要一个处理程序使用返回代码来读取更多内容,直到全部加载完毕)。

这两点是反复出现的问题(在现已解散的论坛上),所以是时候举个例子了。

所以,除非你非常勇敢(并且愿意遵循上述指示),否则你已经明白最好等待本月晚些时候发布的 v3.10:它会为你完成这项工作,你会有几个经过测试的例子可以学习。

请注意,还可以调用entity.c来分析任何类型的请求,不仅是multipart/form-data编码,不仅是POST请求(它还演示了PUTDELETE)。

最后一点:我还修改了代码,以确保 URI 参数和POST/PUT实体都列在 servletargc/argv main()中。

这允许这样的事情:POST /?blog/user/1245/day/24访问user=1245day=24(以及实体)所需的只是读取argv[]

希望这对您的项目有所帮助!

相关内容

  • 没有找到相关文章

最新更新