2010-08-06 43 views
20

我想知道什麼Java文件上傳API的StackOverflow用戶過去曾經使用過,並推薦使用?一個快速的Google搜索似乎表明最常用的API是Apache Commons File Upload(目前爲1.2.1),但是,我們遇到了一些有關使用這個庫的問題以及我們無法使用的較大文件解決。Apache公共文件上傳替代方案

有沒有人找到一個可靠的文件上傳庫(除了Apache Commons之外),他們會推薦?

編輯:流媒體API是而不是一個選項,因爲它使用相同的基礎類,導致我們的問題。

編輯2:我們的原始問題似乎是負載平衡的某種問題。我們的克隆實例使用Apache/AJP1.3,而實例使用Zeus XTM。通過使用服務器IP而不是主機名繞過負載平衡器似乎會導致問題消失。

編輯3:這原來是客戶端防火牆的問題。看起來他們是..呃..當他們說明確知道這不是防火牆問題時,他們並不完全真實。

+0

有多大的文件? – 2010-08-06 10:02:50

+0

什麼樣的問題?內存相關? – naikus 2010-08-06 10:06:18

+0

導致問題的文件大小爲7MB及以上。我們測試過的最大的是600MB。 會發生什麼情況是瀏覽器中的上傳失敗,並且我們最終在日誌中顯示一條堆棧跟蹤,其中指出該流程意外結束。 在Commons File Upload JIRA實例(https://issues.apache.org/jira/browse/FILEUPLOAD-143)上有一個與此相關的開放bug。最後一個評論者是我自己。這不是Flash問題,這發生在各種瀏覽器上,但僅限於Windows XP和Vista客戶端。我們完全困惑不解。 – Jon 2010-08-06 10:18:26

回答

1

如果你有時間或內存相關的問題,你看過streaming API的commons文件上傳嗎?

+0

是的。我們查看了源代碼,發現它使用了我們遇到的類 - org.apache.commons.fileupload.MultipartStream。 – Jon 2010-08-06 10:12:22

-2

看看theese設置,限制爲8MB默認

upload_max_filesize 
post_max_size 
+0

這些設置在哪裏?在通用文件上傳本身?我有一個快速的谷歌,他們似乎是Apache的設置。我們沒有使用Apache .. – Jon 2010-08-06 15:38:19

+0

在文檔(http://commons.apache.org/fileupload/using.html)中,它表示您可以通過執行upload.setSizeMax(yourMaxRequestSize)設置上傳的最大上傳大小);' - 但是這個值的默認值是-1,這是沒有限制的。 – Jon 2010-08-06 15:49:42

+0

-1在Java問題中提及PHP設置 – mhaller 2011-01-14 17:34:48