我相信這是有史以來最史詩的遊戲之一。所以,我已上傳表格,如here。我讓人們可以上傳他們的文件只有1 MB。但是,如果我嘗試上載例如1 GB文件,則需要很長時間纔會出現錯誤。所以,這裏有一個問題。在檢查文件的大小之前,該文件是否正在我的託管中下載,或者是否需要託管我的資源?爲什麼在它給我一個錯誤之前需要很長的時間和年齡,但如果我嘗試上傳2 MB文件,它會在1秒內給我一個錯誤? 謝謝你的解釋。即使文件不應該被下載,文件是否正在被下載到網站?
回答
如果您正在檢查的服務器上的文件大小,然後,是的,它必須上傳到服務器,以只是運行if語句來檢查的大小。
任何你在客戶端做檢查會,當然,是在客戶端的擺佈。所以沒有100%可靠的方法來做到這一點。 Artefacto指出了一種吸引大多數用戶的好方法。還有一個JavaScript ActiveX對象,這可能有助於(http://www.kavoir.com/2009/01/check-for-file-size-with-javascript-before-uploading.html),但同樣,用戶可以輕鬆將其禁用(即使是很無意的)或具有不支持它在所有的瀏覽器。
你應該包括像輸入:
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
該提示瀏覽器中就可以上傳的最大文件大小。大多數瀏覽器會警告用戶,如果該文件太錯誤。
我不認爲如果用戶提交一個PHP將存儲過去允許在php.ini中的最大尺寸後的文件(服務器不會有1GB的文件不必要地佔用空間);但是,用戶必須在獲取服務器的錯誤響應之前發送所有數據,因爲HTTP協議沒有提供中斷客戶端請求並提前發送響應的設置。
要注意的是,如果允許大量POST數據和延遲的文件大小檢查你的PHP腳本,更多的磁盤空間將被使用。
這是很容易刪除這行,一個人的程序員,所以這是不是安全。 – 2010-06-25 18:09:20
@hey這不是安全問題。服務器已經在拒絕這個文件(你在問題中說過)。這是關於給用戶一個線索。如果他想浪費帶寬發送一個文件將被拒絕...就這樣吧。 – Artefacto 2010-06-25 18:10:14
只要有您的問題快速谷歌,我發現這個古老計算器的話題,Using jQuery, Restricting File Size Before Uploading它似乎是INFACT能夠阻止人們將文件上傳到大客戶端,但只使用閃光燈/ Java的,也許這個軟件將幫助http://www.swfupload.org/。第9個項目符號說明:在上載開始前控制文件大小。
問候
盧克
- 1. 文件是否被下載?
- 2. PHP文件被下載,不加載
- 3. 檢測該文件是否被下載,移動和複製
- 4. 從網站下載文件
- 5. 從網站下載文件
- 6. 網站被部分下載
- 7. htaccess保持文件不被下載
- 8. 不被提示下載CSV文件
- 9. 從網址下載文件,並驗證文件已被完全下載
- 10. HttpGetBinary是否等到整個文件被下載?
- 11. 下載帶有Tomcat servlet的文件被下載不完整
- 12. 使用Python從網站下載文件
- 13. 使用python從網站下載文件
- 14. 文件下載(不下載?)
- 15. PHP FTP代碼失敗,即使文件被下載成功
- 16. 下載的所有文件在網站
- 17. 從webservice下載文件 - 在ASP.NET網站
- 18. 試圖使用curl下載文件下載被javascript阻止的文件?
- 19. 使用fopen(),fread(),feof()下載文件...下載的文件被破壞
- 20. 代碼下載空文件,不應該
- 21. 從互聯網下載文件到我的下載文件夾
- 22. 該網站已被載入
- 23. Internet Explorer被重整下載文件名
- 24. IntelliJ沒有文件被下載xyz
- 25. .htaccess文件導致.php被下載
- 26. Struts2文件下載權限被拒絕
- 27. FTP文件(.csv)下載被截斷
- 28. 下載文件時,被點擊HAML
- 29. res.sendFile強制文件被下載
- 30. 是否可以使用QNetworkAccessManager從文件託管網站下載文件
所以你想說每個人都可以嘗試上傳10 GB的文件到像imageshack等網站,並傷害他們,竊取主機的資源? – 2010-06-25 18:11:45
@hey它們會浪費帶寬,但希望不會佔用磁盤空間(如果服務器配置正確,不允許POST請求超過一些小數目)。 – Artefacto 2010-06-25 18:17:11
@hey任何人都可以用他們想要的所有數據來轟炸他們想要的任何服務器,真的。服務器可以阻止任何進入它的東西,但帶寬已經被吃掉了。在這種情況下,所有可以完成的事情都是「建議」的,所以客戶(通過大多數人不知道如何規避的方式,取決於觀衆)不這樣做。 – David 2010-06-25 18:24:02