2012-12-31 50 views
0
$path = 'http://fbcdn-profile-a.akamaihd.net/hprofile-ak-snc6/372096_100002534902767_1927052265_n.jpg'; 
$info = file_put_contents('new/angel.jpg', file_get_contents(urldecode($path))); 
echo $info; 

它在localhost上正常工作,但它在我的網站上無法正常工作。file_put_contents無法在服務器上存儲圖像

任何想法可能是什麼問題?

回答

3
  • 檢查你的日誌中的錯誤消息
  • 是否該文件夾( 「新」)存在嗎?
  • 將權限設置爲允許通過腳本編寫?
  • 你確定錯誤在file_put_contents?如果主機不允許使用url_fopen,file_get_contents可能會失敗。
  • 除非$ path實際上是硬編碼的,否則你可能會引入任意文件泄露的安全問題。確保你驗證你的輸入。
+0

文件夾'新'存在於我的虛擬主機... –

+0

其他圖像文件是動態生成我的imagecreatefromjpeg()或合併圖片創建新圖像文件並將其存儲在Web服務器上。 –

+0

然後繼續檢查其他要點......如果'echo strlen(file_get_contents(urldecode($ path)));'沒有返回正確的文件大小,那麼file_get_contents可能不起作用。你是否啓用了警告? 'error_reporting(E_ALL)'應該在開發過程中的所有腳本中。 –

0

你需要給權限(寫)上傳文件夾

你可以做,通過在數值使用該代碼的FTP程序:777

+0

或只是使用從PHP –

+0

chmod() - 方法我不知道如何設置服務器寫入權限,但認爲寫權限是好的,因爲我已經從其他PHP函數動態創建圖像文件。 –

+0

你使用的FTP客戶端是什麼? –

0
  1. 確保有寫入您正在寫入的文件的權限
  2. 我認爲相對路徑是問題。您的本地可能有該文件的路徑,但該路徑在服務器上不存在。 3.請在$info=file_put_contents('new/angel.jpg', file_get_contents(urldecode($path)))行輸入正斜槓;之前你的「新」文件夾,並嘗試我認爲這可能是一個問題
+0

請不要使用正斜槓,除非您在IIS上託管(如果您不知道,您不是) – giorgio

+0

路徑是好的,我檢查了很多次。 –

+0

我的其他文件夾圖像工作正常,並存儲由函數imagecreatefromjpeg()動態創建的圖像。 –

相關問題