我提供一個設施,我的互聯網用戶,他們可以從一個網址上傳個人資料圖片而不是從計算機上傳取。我在這裏看到一個惡作劇的用戶可以提供一個巨大的文件的URL或可能是一個URL尾號/dev/random
,非常不可能,但可以發生。有沒有一種方法可以在將文件完全取回到我的服務器之前確定文件的大小?如何確定前的文件大小使用PHP捲曲
1
A
回答
0
檢查服務器響應中的Content-Length
標頭。
+0
如果響應中沒有這樣的標題,該怎麼辦? – zerkms 2012-02-29 09:28:48
+2
如果他們提供了「Content-Length:123」,但實際上發送了更多的內容? – rodneyrehm 2012-02-29 09:48:54
1
根據你在做什麼來抓取遠程文件,你可以做不同的事情。
- 雖然
file_get_contents('http://foobar.com')
是相當方便,它會給你最少的控制。我沒有看到你怎麼可以做頭部請求前面抓住Content-Length
頭。 fsockopen()
將與HTTPS打交道時你哭。捲曲,很好,捲曲。它和強大一樣醜陋。還有其他選項,比如HTTP Pecl(基本上是捲曲)。
- 檢查資源是否提供Content-Length標頭。爲此做一個HEAD請求。某些服務器/服務不處理HEAD請求。在獲得響應標題後,您將發出GET請求並中止傳輸。
- 如果(1)得出結果,請檢查它是否大於您的限制。如果是這樣,則中止。
- 使用curl來獲取資源。如果音量超出限制,請查看
CURLOPT_READFUNCTION
以取消下載。如果(1)得出結果,你也應該檢查這個結果,因爲這個結果可能被欺騙了。
在你取得了1頭和1個GET請求獲取內容長度,以及另一個GET請求來下載$ yourLimit字節的最糟糕的情況。
相關問題
- 1. 如何確定HTML/PHP上傳前的文件大小?
- 2. 如何使用PHP /捲曲
- 3. 如何使用PHP捲曲
- 4. 如何與捲曲RAW POST巨大的XML文件 - PHP
- 5. 使用PHP /捲曲
- 6. 確定使用捲曲下載文件時的擴展名?
- 7. ,捲曲下載文件 - PHP
- 8. PHP,確定遠程文件的大小
- 9. 如何使用zend_http_client或正確捲曲
- 10. 捲曲如何與文件
- 11. PHP捲曲不能捲曲
- 12. 捲曲CLI捲曲PHP
- 13. 用PHP捲曲從文件標題
- 14. 執行卷曲使用PHP
- 15. 使用捲曲和PHP
- 16. 無法使用PHP捲曲
- 17. 使用PHP執行卷曲
- 18. 使用捲曲在PHP
- 19. 使用捲曲在PHP
- 20. POST JSON使用PHP捲曲
- 21. 在PHP中使用捲曲
- 22. 使用PHP和捲曲
- 23. 如何使用Hive確定HDFS中的文件大小
- 24. 列表文件/在owncloud文件夾中使用PHP捲曲
- 25. PHP捲曲下載的文件是空
- 26. 使用文件對象之前確定文件對象的大小
- 27. 使用WinInet在下載文件之前確定總文件的大小
- 28. 確定文件夾大小
- 29. 的Unix捲曲到PHP捲曲皈依
- 30. 如何使用FileSystemObject.Size可靠地確定文件夾大小?
完全重複:http://stackoverflow.com/questions/2602612/php-remote-file-size-without-downloading-file – 2012-02-29 09:26:46
@Topener:該主題不會幫助OP來解決**原始**問題。 *有時*閱讀*整個問題*是值得的。 – zerkms 2012-02-29 09:31:41
@Topener我永遠不知道我應該用什麼來搜索。 – 2012-02-29 09:33:54