Buenos días a todos, recurro aquí porque tengo una duda que me está dando verdaderos quebraderos de cabeza, voy a intentar explicarla lo máximo posible.
---
Resulta que tengo un Uploader de imágenes hecho en PHP, y sube las imágenes correctamente al directorio
/ressources/photos/ pero, posteriormente quiero redimensionar las imágenes, por lo que tengo una clase para ello, la publico aquí:
Código PHP:
<?php
class Image
{
private $sys;
public function Image($system)
{
$this->sys = $system;
}
public function ShowImage($path, $type, $size, $class = '', $style = '', $id = '')
{
$string = $path.'---'.$type.'---'.$size;
return '<img src="ressources/includes/resize.php?id='.$string.'" class="'. $class .'" style="'. $style .'" id="'. $id .'" />';
}
public function Resize($path, $type, $width)
{
switch($type)
{
case 'gif' : $imagenOriginal = imagecreatefromgif($path); break;
case 'png' : $imagenOriginal = imagecreatefrompng($path); break;
case 'jpeg': $imagenOriginal = imagecreatefromjpeg($path); break;
case 'jpg' : $imagenOriginal = imagecreatefromjpeg($path); break;
}
$anchoOriginal = imagesx($imagenOriginal);
$altoOriginal = imagesy($imagenOriginal);
$altoFinal = ($width / $anchoOriginal) * $altoOriginal;
$imagenRedimensionada = imagecreatetruecolor($width, $altoFinal);
imagecopyresampled($imagenRedimensionada, $imagenOriginal, 0, 0, 0, 0, $width, $altoFinal, $anchoOriginal, $altoOriginal);
header('Content-type: '.$type);
switch($type)
{
case 'gif' : imagegif($imagenRedimensionada); break;
case 'png' : imagepng($imagenRedimensionada); break;
case 'jpeg': imagejpeg($imagenRedimensionada); break;
case 'jpg' : imagejpeg($imagenRedimensionada); break;
}
imagedestroy($imagenOriginal);
imagedestroy($imagenRedimensionada);
}
Aparece otro archivo entre las <img> su contenido es el siguiente:
Código PHP:
<?php
require '../../init.php';
$explode = explode('---',$string);
$path = $explode[0];
$type = $explode[1];
$size = $explode[2];
echo $image->Resize('../../'.$path, $type, $size);
?>
Y la imagen la muestro así:
Código PHP:
<?php
$image = new Image();
echo $image->ShowImage('ressources/photos/evento.jpg', 'jpg', 100);
?>
El problema es que no la carga... no es problema del PHP porque si
ressources/photos/evento.jpg lo cambio por
ressources/img/genre/male.png esta si que sale.
En cambio, si muevo la imagen
ressources/img/genre/male.png a
ressources/photos/ y cambio el código, esta no se muestra... por lo que tendría que ser un problema de permisos y grupos de linux... publico los permisos de
ressources/photos/:
Código:
-rw-r--r-- 1 www-data www-data 76282 jun 30 01:26 e6f8c7_evento.jpg
-rw-r--r-- 1 angelq angelq 6628 jun 28 18:03 male.png
y no me muestra la imagen...
He probado a darle permisos 0777:
Código:
-rwxrwxrwx 1 www-data www-data 76282 jun 30 01:26 e6f8c7_evento.jpg
-rwxrwxrwx 1 angelq angelq 6628 jun 28 18:03 male.png
y no me muestra la imagen...
Entonces me da por mirar en la carpeta
ressources/img/genre/ a ver que permisos y a que grupo pertenece el archivo
male.png y me encuentro con que tiene exáctamente los mismos que en el primer caso:
Código:
-rw-r--r-- 1 angelq angelq 6628 jun 28 18:03 male.png
Así que no entiendo cual puede ser el maldito error...
Espero que me puedan ayudar, lo necesito... :S
Un cordial saludo a todos.