Я создаю изображение через 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, чтобы исключить любые проблемы на этом фронте. имя $ наверняка является допустимой строкой без пробелов.
Убедитесь, что у PHP есть разрешения на запись файлов в эту папку. chmod, вероятно, влияет только на пользователей FTP или отдельных пользователей.
И попробуйте по одному. то есть:
header( "Content-type: image/png" ); imagepng($my_img);
тогда
$save = "../sigs/". strtolower($name) .".png"; imagepng($my_img, $save);
Чтобы вы могли изолировать ошибки.
Попытайтесь сохранить в той же папке, что и сценарий, посмотрите, есть ли какие-либо проблемы.
$save = strtolower($name) .".png"; imagepng($my_img, $save);
Большое спасибо за то, что вы помогаете очистить свой разум и заставить меня выглядеть под другим углом. Все было связано с правами файла.
Поскольку скрипт сгенерировал файл, права не установлены правильно, и перезапись невозможна.
после изъятия:
header( "Content-type: image/png" ); imagepng($my_img);
Я получил сообщение об ошибке, чтобы не писать. когда задано руководство к файлу chmod 755, скрипт работал как шарм.
поэтому новый код теперь выглядит следующим образом:
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);
Установка файла для записи была исправлена, и все работает по назначению.
С уважением, Фонс
Вы уверены, что относительный путь правильный? Это может быть немного запутанным, если этот сценарий вызывается из другого сценария.
Вы можете попробовать изменить путь к:
$save = $_SERVER['DOCUMENT_ROOT'] . "/sigs/" . strtolower($name) . ".png";
Изменить: И, конечно, проверьте возвращаемое значение imagepng () и ваш журнал ошибок
Ваш код, Фонс, спровоцировал обычную проблему, с которой я показывал изображение, созданное с помощью библиотеки GD, но отключив любой 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" />
Благодарю.