2012-10-18 81 views
0

我试图使用XMLHttpRequest和FORMDATA API图像文件上传到我的G-WAN服务器,但我不能检索文件的文件上传contents.Here是h_entities输出:与G-WAN

-----------------------------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 

“内容类型”是multipart/form-data。有没有人设法上传文件到G-WAN?我找不到一个例子。谢谢!

回答

0

我花了近个小时写了G-WAN V3.10专用的例子+叫entity.html(形式与[browse]按钮POST文件),这将调用entity.c Servlet(它报告有关POST一切实体并列出其前1000个字节)。

您的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所有你需要访问user=1245day=24(以及实体)是读取argv[]

希望这会帮助你在你的项目!

+0

非常感谢您的详细回复!我比勇敢更勇敢,但我的时间最好花在我的应用程序的其他部分上,直到我们具备该功能为止。我真的很喜欢G-WAN(和C API),并不耐烦地等待3.10版本。 –