2012-07-19 103 views
3

我設法在瀏覽器上顯示圖像,但無法使用imagejpeg保存它(我沒有看到保存在服務器中的任何圖像)。我一直在嘗試幾個小時,並通過使用is_writable測試了該文件夾,如本文中提到的其他人PHP imagejpeg save file doesn't work所述。 但它仍然無法正常工作,並且在Chrome瀏覽器上,除了損壞的圖標圖標,我沒有看到任何錯誤,但在IE上顯示如下錯誤: 「警告:imagejpeg()[function.imagejpeg]:無法打開「該文件不可寫imagejpeg保存文件不起作用

這是我的代碼。

header('Content-type: image/jpeg'); 
$filename = 'little.jpg'; 
$im = imagecreatefromjpeg($filename); 
imagefilter($im, IMG_FILTER_CONTRAST,$_POST["amount"]); 

imagejpeg($im,"test.jpg"); 

imagedestroy($im); 

if (is_writable('test.jpg')) { 
    echo 'The file is writable'; 
} else { 
    echo 'The file is not writable'; 
} 

任何人都可以幫忙嗎?謝謝。 P.S:我也想在瀏覽器上顯示圖像並同時保存圖像。 imagejpeg能夠做到嗎?如果沒有,是否有更好的方法來做到這一點?謝謝。

編輯:當我檢查我的文件夾是否可寫時,它回顯'文件是可寫的',但是當我檢查test.jpg是否可寫時,它回顯'文件不可寫'。

回答

5

該錯誤表明您的PHP腳本無權寫入服務器上的該位置。使用您的FTP軟件CHMOD(更改權限)以允許寫入您嘗試存儲這些目錄的目錄。除非您的虛擬主機已禁用PHP在本地寫入文件,否則應該這樣做(在這種情況下,您應該與他們交談並查看可用的選項)。

+0

如何更改權限?但是當我測試它應該寫入的文件夾時,它會回顯爲'它是可寫的'。我測試如下:if(is_writable('./')){echo'The file is writable'; } else { echo'文件不可寫'; } – 2012-07-19 15:37:12

+0

is_writable()應該指向一個目錄,而不是一個文件名字符串......因此無論如何都會混淆在一起。權限在FTP軟件中設置,但它們的工作方式不同。您想要查找「權限」或「CHMOD」的內容,並將其設置爲755以存儲圖像的目錄。另外,我通常使用完整的服務器路徑來存儲文件......在大多數情況下,這不是「必需的」,但如果某些事情沒有進行到我認爲的地步,那麼確實會給我更好的調試數據。我使用類似於:$ filename = $ _SERVER ['DOCUMENT_ROOT']。'/ images/test.jpg'; – techtheatre 2012-07-19 15:44:59

+0

thx很多爲您的答案。這實際上是服務器問題,我設法解決它,因爲你的答案。 – 2012-07-19 17:47:11