2008-10-01 40 views

回答

4

這不是一個完美的解決方案,但如果你用request.getHeader("Content-Length")檢查內容長度HTTP標頭,那麼你可以選擇不傳輸整個文件。

作爲解釋,一個非常大的文件不會一次全部傳輸。您必須實際打開代表該數據塊的POST數據流,並從中讀取整個事件才能傳輸。

在另一方面,如果你擔心的拒絕服務攻擊,那麼你就不能真正信任的Content-Length頭,因爲它很容易被僞造。在這種情況下,您應該設置限制並傳輸此文件,並在您超過此限制時立即停止。

2

建議你重新考慮閃光的決定,並採取看看YUI上傳,在這裏:

http://developer.yahoo.com/yui/uploader/

除其他事項外,fileSelect事件會立即告訴你所選文件的字節大小選擇之後但尚未上傳之前,您可以相應地進行限制。

1

使用JSP或PHP,您將無法限制文件大小,因爲在上載發生之前,您的頁面不會收到請求。此時您可以決定不保存文件,但可能爲時已晚。

這裏有一些Java解決方案,例如, MyUploaderHermes。有些甚至支持多個文件上傳並恢復部分上傳,有些還會爲您提供源代碼。你也可以編寫你自己的,但它需要是一個簽名的applet才能運行,因爲它需要訪問本地文件系統。如果您使用的是Apache作爲您的網絡服務器,則需要足夠的內存來適應整個文件大小,以便在給定時間內上傳所有文件的內存。

相關問題