2014-04-30 46 views
0

我有這個非常簡單的形式。這是給那些想在自己的網站上給自己一個「個人資料圖片」的人。沒有上傳,只需把你的圖片的網址,然後點擊保存。所以,這只是一個「網址」。PHP驗證圖片url

這是我當前的代碼

<?PHP 
    if(is_array(getimagesize($_POST['profilepicture']))&&filter_var($_POST['profilepicture'], FILTER_VALIDATE_URL,FILTER_FLAG_SCHEME_REQUIRED)){  
     echo "Good"; 
    } else { 
     echo "Bad"; 
    } 
?> 

我已經嘗試了一切。我試過getimagesize(),它不起作用。這在我的本地主機上通過wamp工作,但在我的主機上失敗。我必須在我的php.ini中更改某些內容嗎?

非常感謝。

+0

你介意發表一下你的表單看起來像是在發佈嗎? –

回答

0

在您的PHP.ini文件夾中檢查您的"upload_max_filesize"定義。確保它沒有失敗上傳過程。 (任何大於默認2MB的文件將被取消。)

僅供參考,請查看this thread

+0

我一直將它改爲100MB,但仍然失敗.. –

0

我已經知道了這個問題。我檢查了我的主機上的錯誤日誌。它說allow_url_fopen = 0是錯誤。我在我的php.ini中打開它,現在它可以工作!

1

您的主機可能沒有啓用allow_url_fopen指令。這可能會導致外部網址的圖像不能被getimagesize函數訪問。如果是打開錯誤報告會拋出一個警告,說明情況

警告: 和getimagesize(http://extenalsite.com/path/to/profile/image.txt) [function.getimagesize]:未能打開流:沒有合適的包裝 可以發現

並將其設置爲有助於原因。參考類似的問題here