Создание изображения в php, отображение работы, сохранение в файл не
Я создаю изображение через PHP скрипт с помощью imagepng.
Это прекрасно работает и хорошо отображается на веб-сайте.
даже save-as дает мне действительный файл .png
header( "Content-type: image/png" );
imagepng($my_img);
$save = "../sigs/". strtolower($name) .".png";
//imagepng($my_img, $save, 0, NULL);
imagepng($my_img, $save);
Это конечная часть кода, который я использую для создания файла, и возвращаю его как изображение на веб-сайте. но оба варианта (попробовали один выделенный), не сохраняйте файл на веб-сервере для последующего использования.
Папка, в которой записывается файл, даже установлена на chmod 777, чтобы исключить любые проблемы на этом фронте.
имя $наверняка является допустимой строкой без пробелов.
Ответы
Ответ 1
Убедитесь, что у PHP есть разрешения на запись файлов в эту папку. chmod, вероятно, влияет только на пользователей FTP или конкретных пользователей.
И попробуйте по одному. то есть:.
header( "Content-type: image/png" );
imagepng($my_img);
затем
$save = "../sigs/". strtolower($name) .".png";
imagepng($my_img, $save);
Чтобы вы могли изолировать ошибки.
Сначала попытайтесь сохранить в той же папке, что и script, если есть какие-либо проблемы.
$save = strtolower($name) .".png";
imagepng($my_img, $save);
Ответ 2
Спасибо, что помогли мне очистить свой разум и заставить меня выглядеть под другим углом.
Все были связаны с правами файла.
Как созданный файл script, права не установлены правильно, и перезапись невозможна.
после вынимания:
header( "Content-type: image/png" );
imagepng($my_img);
Я получил сообщение об ошибке о невозможности писать.
когда задано руководство к файлу chmod 755, script работал как шарм.
поэтому новый код теперь выглядит следующим образом:
header( "Content-type: image/png" );
imagepng($my_img);
$save = "../sigs/". strtolower($name) .".png";
chmod($save,0755);
imagepng($my_img, $save, 0, NULL);
imagedestroy($my_img);
Настройка файла для записи позволяет устранить проблему, и все работает по назначению.
С уважением
Fons
Ответ 3
Вы уверены, что относительный путь правильный? Это может быть немного запутанным, если этот script вызывается из другого script.
Вы можете попробовать изменить путь к:
$save = $_SERVER['DOCUMENT_ROOT'] . "/sigs/" . strtolower($name) . ".png";
Изменить: И, конечно, проверьте возвращаемое значение imagepng() и журнал ошибок
Ответ 4
Ваш код, Фонс, спровоцировал обычную проблему, с которой я показывал изображение, созданное с помощью GD Library, но отключив любой HTML-код после Php. Удалив строку ниже
header( "Content-type: image/png" ); imagepng($image);
и только используя следующие 2 строки в Php, я смог сохранить файл, а затем получить доступ к изображению в разделе Html (нижняя строка кода), не уничтожая кодировку HTML.
$save='./img/Graph.png'; chmod($save,0755);
imagepng($image,$save,0,NULL); imagedestroy($image);
<img width="500" height="350" align="top" alt="" src="./img/Graph.png" />
Спасибо.