2012-10-18 28 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版本。 –