2017-06-21 100 views
4

我試圖從遠程URL獲取圖像的文件大小,我想這就像這樣:腓 - 獲取文件大小與URL

$remoteUrl = $file->guid; 
//remote url example: http://myApp/wp-content/uploads/2017/05/Screen-Shot-2017-05-08-at-10.35.54.png 

$fileSize = filesize($remoteUrl); 

但是,我得到:

文件大小():統計失敗 http://myApp/wp-content/uploads/2017/05/Screen-Shot-2017-05-08-at-10.35.54.png

+0

HTTP不是一個文件系統。您需要從該URL下載內容(使用類似CURL的內容)並檢查下載內容的大小。 – David

+2

[獲取遠程文件大小]的可能副本(https://stackoverflow.com/questions/27816849/get-size-of-a-remote-file) – alanlittle

+1

請參閱[本主題](https:// stackoverflow。 com/questions/2602612/php-remote-file-size-without-downloading-file) 它建議捲曲這個任務。 –

回答

0

這錯誤通常意味着所提供的URL不會返回一個有效的圖像。當我嘗試訪問http://myapp/wp-content/uploads/2017/05/Screen-Shot-2017-05-08-at-10.35.54.png時,它不會在我的瀏覽器中顯示圖像。仔細檢查從$file->guid;返回的URL是否正確。

+0

這是假設,我知道,但我認爲這個URL是假的,當我看到它時只是一個示例URL。 –

1

您可以使用HTTP標頭來查找對象的大小。 PHP函數get_headers()可以得到它們:

$headers = get_headers('http://myApp/wp-content/uploads/2017/05/Screen-Shot-2017-05-08-at-10.35.54.png', true); 
echo $headers['Content-Length']; 

這樣可以避免下載整個文件。您還可以訪問所有其他標題,例如$headers['Content-Type'],如果您正在處理圖像(documentation),可以派上用場。