Использование PHP ImageCreateFromJPEG () не позволяет мне воссоздать изображение: оно генерирует его один раз и сохраняет в кеше сервера независимо от того, что - PullRequest
0 голосов
/ 23 декабря 2018

Я использую ImageCreateFromJPEG (), чтобы создать изображение в php и заполнить его текстом.

Моя проблема заключается в том, что после создания изображения, даже если я удаляю его с сервера и удаляюкеш, изображение все еще там.

Даже если я изменю текст, который должен идти внутри изображения, ничего не изменится.Я попытался с другим браузером (на всякий случай, если это была какая-то проблема с кэшем браузера), и проблема все еще там.

Это мой код, который генерирует изображение:

function demo($userID, $cursoID, $fechaAprobacion) {

$x = $conectar->prepare("
  SELECT fechaEmisionCertificado, cursosUsuarios.userID, userNombres, tipoCertificado, campoExtraCertificado, userDNI,
      nombreCurso
  FROM cursosUsuarios
  JOIN usuarios
  ON cursosUsuarios.userID = usuarios.userID
  JOIN cursos 
  ON cursosUsuarios.cursoID = cursos.cursoID
  WHERE cursosUsuarios.userID = ?
  AND cursosUsuarios.cursoID = ?
  ");
$x->bindParam(1, $userID);
$x->bindParam(2, $cursoID);
$x->execute();
$y = $x->fetch(PDO::FETCH_ASSOC);

$tipoCertificado = $y['tipoCertificado'];
$campoExtraCertificado = $y['campoExtraCertificado'];
$nombreCompleto = strtolower($y['userNombres']);
$nombreCurso = $y['nombreCurso'];

$fechaNumeros = $y['fechaEmisionCertificado'];

$guardarImagen = '/userID'.$userID.'-cursoID'.$cursoID.'.jpg';

$mesyAnoEmision = $mesEmision.' de '.$anoEmision.'.';

//Now we print the certificate, according to the certificate type $tipoCertificado

    if ($tipoCertificado == 4) { //taller online
      $imagen = ImageCreateFromJPEG('certificado-taller-online-2018.jpg');
      //Color de fondo de la imagen
      $color = imagecolorallocate($imagen, 0, 0, 0);  
      //cargamos las fuentes ttf
      $f = '/mtcorsiva.ttf';
      $f2 = '/JosefinSans-BoldItalic.ttf';

      //tomamos la data y la incrustamos
      // horizontal / vertical
      imagettftext($imagen, 140, 0, 850, 733, $color, $f, $nombreCompleto);
      imagettftext($imagen, 80, 0, 1555, 879, $color, $f, $nombreCurso);
      imagettftext($imagen, 90, 0, 1590, 1218, $color, $f, $fechaAprobacion);
      imagettftext($imagen, 90, 0, 980, 1805, $color, $f, $diaEmision);
      imagettftext($imagen, 90, 0, 1879, 1805, $color, $f, $mesyAnoEmision);
      imagettftext($imagen, 40, 0, 3122, 2314, $color, $f2, $userID);
      //Header y output
      header('Content-type: image/jpeg');
      //guardamos la imagen como archivo
      imagejpeg($imagen,$guardarImagen,100);
      //mostramos la imagen
      imagejpeg($imagen,NULL,100);
      imagedestroy($imagen);    
    }

}


demo($userID, 1, 'December 19th');

1 Ответ

0 голосов
/ 23 декабря 2018

На всякий случай, если кому-то это когда-нибудь поможет, я обнаружил проблему:

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

Итак, сначала я должен установить их разрешения, а затем показать:

chmod($imagen, 0777);
imagejpeg($imagen,NULL,100);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...