файл сохранения imagejpeg не работает

Мне удалось отобразить изображение в браузере, но я не могу сохранить его с помощью imagejpeg (я не вижу изображения, сохраненного на сервере). Я пытался в течение нескольких часов, а также проверил папку с помощью is_writable, как указано в этом сообщении, заданном кем-то другим Файл сохранения PHP imagejpeg не работает . Но он по-прежнему не работает, и в хроме я не вижу никакой ошибки, кроме значка сломанного изображения, но в IE отображается такая ошибка: «Предупреждение: imagejpeg() [function.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, он повторил: «Файл недоступен для записи».


person Tha Zin    schedule 19.07.2012    source источник


Ответы (1)


Эта ошибка указывает на то, что у вашего PHP-скрипта нет разрешения на запись в это место на сервере. Используйте свое программное обеспечение FTP для CHMOD (изменение разрешений), чтобы разрешить запись в каталог, в котором вы пытаетесь сохранить их. Это должно сделать это, если ваш веб-хост вообще не отключил PHP от записи файлов локально (в этом случае вы должны поговорить с ними и посмотреть, какие варианты доступны).

person techtheatre    schedule 19.07.2012
comment
Как изменить разрешение? Но когда я проверил папку, в которую он должен записываться, это отразилось как «доступно для записи». Я тестировал следующим образом: if (is_writable('./')) { echo 'Файл доступен для записи'; } else { echo 'Файл недоступен для записи'; } - person Tha Zin; 19.07.2012
comment
is_writable() должен указывать на каталог, а не на строку имени файла... так что это все равно перепутано. разрешения устанавливаются в вашем программном обеспечении FTP, но все они работают по-разному. Вы хотите найти что-то, что говорит либо о разрешениях, либо о CHMOD, и установить его на 755 для каталога, в котором вы храните свое изображение. Кроме того, я обычно использую полный путь к серверу для хранения файлов... в большинстве случаев это не обязательно, но дает мне лучшие данные для отладки, если что-то идет не так, как я думал. Я использую что-то вроде: $filename = $_SERVER['DOCUMENT_ROOT'].'/images/test.jpg'; - person techtheatre; 19.07.2012
comment
Большое спасибо за ваши ответы. На самом деле это проблема с сервером, которую мне удалось решить благодаря вашим ответам. - person Tha Zin; 19.07.2012