Проблема изменения размера изображения с обрезкой php, когда я вызываю его из внешнего файла, не показывает изображение на онлайн-сервере - PullRequest
0 голосов
/ 03 июля 2019

Это файл с примером обрезки и заголовка.

redimensionador.php

<?php
//Redimensionador

$nombre_archivo = "ajo_tradiciones.jpg";
$rutaCarpetas = "views/images/$nombre_archivo";

$img = imagecreatefromjpeg($rutaCarpetas);
$imgs = getimagesize($rutaCarpetas);


$w = $imgs[0];
$h = $imgs[1];


$escala_w = 70/$w;
$escala_h = 70/$h;

$nuevo_ancho = floor($w*$escala_w);
$nuevo_alto = floor($h*$escala_h);

$tp = imagecreatetruecolor($nuevo_ancho, $nuevo_alto);

imagecopyresampled($tp, $img, 0,0,0,0, 70, 70, $w, $h);

ob_clean();//Adding ob_clean I get it works on online server. 
//With this option I get view the image with the new size 70x70
Header("Content-type: image/jpeg");
imagejpeg($tp, NULL, 100);

imagedestroy($img);
?>

Но если я вызову redimensionador из другого файла, например crop-cargador.php , он не будет работать.

растениеводство-cargador.php

<p>Option resized from external file</p>
<img src="redimensionador.php" />
<p>Option resized from external file from folders route</p>
<img src="views/modules/redimensionador.php" />

Все они работают в localhost, но этот последний пример не работает на онлайн-сервере, если я пытаюсь увидеть изображение из crop-cargador.php .

Что мне сделать, чтобы решить проблему?

1 Ответ

0 голосов
/ 11 июля 2019

Наконец-то я использовал $ _ SERVER ["DOCUMENT_ROOT"]; и, очевидно, я получил решение.

redimensionador.php

<?php
    //Opción 1 para cargar desde otro archivo.
    //Nombre del archivo
    $nombre_archivo = "ajo_tradiciones.jpg";
    //Ruta absoluta desde el directorio Raiz del servidor.
    $rutaRaiz = $_SERVER["DOCUMENT_ROOT"];
    $rutaCarpetas = $rutaRaiz."/views/images/$nombre_archivo";//Carga

    $img = imagecreatefromjpeg($rutaCarpetas);
    $imgs = getimagesize($rutaCarpetas);

    $w = $imgs[0];
    $h = $imgs[1];

    $escala_w = 70/$w;
    $escala_h = 70/$h;

    $nuevo_ancho = floor($w*$escala_w);
    $nuevo_alto = floor($h*$escala_h);

    $tp = imagecreatetruecolor($nuevo_ancho, $nuevo_alto);

    imagecopyresampled($tp, $img, 0,0,0,0, 70, 70, $w, $h);

    ob_clean();
    //Con esta opción logro verla en pantalla con el nuevo tamaño 70x70
    Header("Content-type: image/jpeg");
    imagejpeg($tp, NULL, 100);

    imagedestroy($img);
    ?>

crop-cargador.php

<?php $url = Ruta::ctrRuta(); // https://dominio.com/ ?>
<p>Cargo la imagen desde la ruta de la url absoluta.</p>
<img src="<?php echo $url ?>views/modules/redimensionador.php" />

Так что я делюсь этим на случай, если кому-то понадобится позже.

Привет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...