Создайте изображение с помощью PHP и сохраните его в папке сервера

#php #imagejpeg

#php #imagejpeg

Вопрос:

Решена проблема!!!

  1. Как сказал Мони, мне нужно передать 3 параметра для imagejpeg небольшой коррекции, которой не должно быть imagejpeg($im,$save,0) , предполагается imagejpeg($im,$save,100) , что качество изображения должно быть 100, чтобы получить качественные изображения

  2. Папка с изображением без косой черты «images/ fb /»

  3. Также для imagecolorallocate imagecolorallocate($im, 142, 011, 029) трехзначного RGB, чтобы получить правильный вывод.

Итак, ответ на это и полный код приведены ниже

 <?php
// Create image with 2 line of text
$im = imagecreatetruecolor(600, 300);
$text_color = imagecolorallocate($im, 142, 011, 029);
imagestring($im, 10, 5, 5,  'Some Text String', $text_color);
imagestring($im, 10, 5, 50,  'Some Text String 2', $text_color);

// Set the content type header as image/jpeg
header('Content-Type: image/jpeg');

// Output the image
//imagejpeg($im);    //up-to this point its working well 

$name="test2";
$save = "images/fb/". strtolower($name) .".jpeg";
imagejpeg($im, $save, 100);   //Saves the image
imagejpeg($im);              //Displays the image

// Free up memory
imagedestroy($im);
?>
  

Проблема

Пожалуйста, помогите мне решить эту проблему, которая у меня есть,

Я пытаюсь создать изображение с помощью php и пытаюсь сохранить созданное изображение внутри папки, изображение отображалось, но когда я добавляю сохранение в папку, оно выдает ошибку. ниже приведен код, который я пробовал.

 <?php
// Create image with 2 line of text
$im = imagecreatetruecolor(600, 300);
$text_color = imagecolorallocate($im, 142, 11, 29);
imagestring($im, 10, 5, 5,  'Some Text String', $text_color);
imagestring($im, 10, 5, 50,  'Some Text String 2', $text_color);

// Set the content type header as image/jpeg
header('Content-Type: image/jpeg');

// Output the image
//imagejpeg($im);    //up-to this point its working well 

$name="test";
$save = "/images/fb/". strtolower($name) .".jpeg";

imagejpeg($im, $save, 0, NULL);

// Free up memory
imagedestroy($im);
?>
  

ниже приведена ошибка, которую я получаю

 The image "path" cannot be displayed because it contains errors.
  

моя структура папок

 ->www
  -> projectFolder 
   -> subFolder
      ->phpFile
      ->imageFolder (images)
        ->imageSubFolder (fb)
  

Я тоже пробовал chmod , но, похоже, его разрешение не является проблемой, потому что я пытаюсь сделать это в Localhost.

Любые советы будут оценены…

Комментарии:

1. Вы уверены, что этот путь /images/fb/ существует? / означает, что это основная папка на сервере, а не ваша локальная images/fb/ папка

2. Возможно, ваш путь неверен? В чем ошибка?

3. «… выдает ошибку» … и ошибка?

4. $save = "/path/to/www/images/fb/". strtolower($name) .".jpeg"; Вам нужно либо использовать полный путь к серверу, либо использовать относительный путь и опустить косую черту перед изображениями $save = "images/fb/". strtolower($name) .".jpeg";

5. Я попробовал использовать относительный путь, опустив / перед изображениями, это не помогает.

Ответ №1:

Вы создаете изображение как $im , а затем пытаетесь сохранить его как .$my_img

Измените это: imagejpeg($my_img, $save, 0);

Для: imagejpeg($im, $save, 0);

Комментарии:

1. Да, это ошибка, «Исправленная», хотя проблема все та же: (

2. И просто для пояснения, Null также можно использовать в качестве параметра для imagejpeg в соответствии с руководством по PHP .. если я не устанавливаю какое-либо качество для изображения.

3. imagejpeg имеет только 3 параметра. Вы можете использовать NULL для параметра $to, если вы хотите установить качество и не хотите указывать параметр $to: php.net/manual/en/function.imagejpeg.php

4. Спасибо moni_dragu, есть несколько идей, которые необходимо изменить вместе с вашим предложением. Спасибо, что направили меня!