Ver Mensaje Individual
  #13 (permalink)  
Antiguo 06/07/2019, 09:57
Avatar de kahlito
kahlito
Colaborador
 
Fecha de Ingreso: marzo-2003
Ubicación: En el Estrecho y el mar
Mensajes: 2.936
Antigüedad: 21 años, 1 mes
Puntos: 65
Respuesta: Llamar a imagen redimensionada en un thumbnail.php desde su html src

Cita:
Iniciado por tuadmin Ver Mensaje
usa rutas ABSOLUTAS, para descargar el problema de RUTA BASE de php que suelen a veces ser mal configurados de parte del servidor
cambia
Código PHP:
$rutaCarpetas "views/images/$nombre_archivo"
por

Código PHP:
$rutaCarpetas __DIR__."/views/images/$nombre_archivo"
o
Código PHP:
$rutaCarpetas "c:/path/principal"."/views/images/$nombre_archivo"
siendo "c:/path/principal" un ejemplo de tu PATH principal
Pues sí, estabas en lo cierto, haciendo varios cambios creo que por fin lo consigo.

Cita:
Iniciado por Triby Ver Mensaje
Código PHP:
Ver original
  1. $rutaCarpetas = "views/images/$nombre_archivo";//Si reconoce y carga la imagen si solo cargo el archivo redimensionador.php

Tal vez lo reconoce porque redimensionador.php seguramente está en el mismo nivel que views, pero el script de tu proyecto está en una ruta diferente.

Entonces, la solución sería:
Código PHP:
Ver original
  1. $rutaCarpetas = "/carpeta_raiz/views/images/$nombre_archivo";

Solo remplaza /carpeta_raiz/ con la ruta absoluta de tu proyecto y listo.

Ahora, no entiendo cómo es que al no usar ob_* te aparezca esa salida, es como si quisieras mostrar la imagen junto con el HTML.
Lo mismo digo, estabas en lo cierto y al hacer dicho cambio en esa ruta absoluta del servidor ya salen las imágenes.

Al entrar ayer en el servidor busqué la ruta absoluta y era algo así:

Cita:
Ruta relativa:
/

Ruta absoluta:
/k-----/homepages/30/xxxxxx/htdocs/ (por ejemplo)
Entonces a partir de ahi he retomado pruebas con esa misma ruta, don __DIR__ y con $_SERVER["DOCUMENT_ROOT"]

Php para redimensionar
redimensionador.php

Código PHP:
Ver original
  1. <?php
  2. //nombre del archivo
  3. $nombre_archivo = "ajo_tradiciones.jpg";
  4. //Ruta relativa de carpetas.
  5. $rutaCarpetas = "views/images/$nombre_archivo"; //Carga
  6. //Ruta absoluta completa del servidor
  7. $rutaCarpetas =/k-----/homepages/30/xxxxxx/htdocs/views/images/$nombre_archivo"; // Carga
  8. //Ruta absoluta desde homepages del servidor
  9. $rutaCarpetas ="/homepages/30/xxxxxx/htdocs/views/images/$nombre_archivo"; //Carga
  10. //Ruta absoluta con DIR desde el servidor
  11. $rutaCarpetas = __DIR__."/views/images/$nombre_archivo"; //No carga
  12. //Ruta absoluta desde el directorio Raiz del servidor.
  13. $rutaRaiz = $_SERVER["DOCUMENT_ROOT"];
  14. $rutaCarpetas = $rutaRaiz."/views/images/$nombre_archivo";//Carga
  15. ?>

Html para cargar imágenes.
crop-cargador.php

Código HTML:
Ver original
  1. <p>Opción redimensionada desde archivo externo (No carga)</p>
  2. <img src="redimensionador.php" />
  3. <p>Opción redimensionada desde archivo externo desde la ruta relativa de carpetas (carga)</p>
  4. <img src="views/modules/redimensionador.php" />
  5. <p>Opción redimensionada desde archivo externo desde la ruta absoluta url de carpetas (carga)</p>
  6. <img src="<?php echo $url ?>views/modules/redimensionador.php" />
  7. <p>Opción utilizando ruta absoluta completa del servidor (no carga)</p>
  8. <img src="/k-----/homepages/30/xxxxxx/htdocs/views/modules/redimensionador.php" />
  9. <p>Opción utilizando ruta raiz absoluta del servidorcon DIR (carga)</p>
  10. <img src="<?php __DIR__ ?>views/modules/redimensionador.php" />
  11. <p>Opción utilizando ruta raiz absoluta del servidor (carga)</p>
  12. <img src="<?php $_SERVER["DOCUMENT_ROOT"]; ?>views/modules/redimensionador.php" />

Por lo tanto pruebo así y creo que funciona bien:

redimensionador.php

Código PHP:
Ver original
  1. <?php
  2. //Opción 1 para cargar desde otro archivo.
  3. //Nombre del archivo
  4. $nombre_archivo = "ajo_tradiciones.jpg";
  5. //Ruta absoluta desde el directorio Raiz del servidor.
  6. $rutaRaiz = $_SERVER["DOCUMENT_ROOT"];
  7. $rutaCarpetas = $rutaRaiz."/views/images/$nombre_archivo";//Carga
  8.  
  9. $img = imagecreatefromjpeg($rutaCarpetas);
  10. $imgs = getimagesize($rutaCarpetas);
  11.  
  12. $w = $imgs[0];
  13. $h = $imgs[1];
  14.  
  15. $escala_w = 70/$w;
  16. $escala_h = 70/$h;
  17.  
  18. $nuevo_ancho = floor($w*$escala_w);
  19. $nuevo_alto = floor($h*$escala_h);
  20.  
  21. $tp = imagecreatetruecolor($nuevo_ancho, $nuevo_alto);
  22.  
  23. imagecopyresampled($tp, $img, 0,0,0,0, 70, 70, $w, $h);
  24.  
  25. //Con esta opción logro verla en pantalla con el nuevo tamaño 70x70
  26. Header("Content-type: image/jpeg");
  27. imagejpeg($tp, NULL, 100);
  28.  
  29. ?>

crop-cargador.php

Código HTML:
Ver original
  1. <?php $url = Ruta::ctrRuta(); // https://dominio.com/ ?>
  2. <p>Cargo la imagen desde la ruta de la url absoluta.</p>
  3. <img src="<?php echo $url ?>views/modules/redimensionador.php" />

Finalmente he utilizado $_SERVER["DOCUMENT_ROOT"]; ya que me devuelve la ruta absoluta completa del servidor actual, no se si será lo más seguro en este caso ¿Con eso ya estaría solucionado?

Gracias de nuevo por vuestra gran ayuda, saludos.