【问题标题】:file upload with G-WAN使用 G-WAN 上传文件
【发布时间】:2012-10-18 10:29:39
【问题描述】:

我正在尝试将带有 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?我找不到一个例子。谢谢!

【问题讨论】:

    标签: image xmlhttprequest form-data g-wan


    【解决方案1】:

    我花了最后几个小时为 G-WAN v3.10+ 编写了一个名为 entity.html 的专用示例(一个带有[browse] 按钮到POST 文件的表单),它将调用entity.c servlet (报告有关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 实体都列在 servlet argc/argv main() 中。

    这允许诸如:POST /?blog/user/1245/day/24 之类的事情,您只需读取 argv[] 即可访问 user=1245day=24(以及实体)。

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

    【讨论】:

    • 非常感谢您的详细回复!我非常勇敢,但我最好把时间花在我的应用程序的其他部分上,直到我们有了这个功能。我真的很喜欢 G-WAN(和 C API)并迫不及待地等待 3.10 版本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多