Foros del Web » Programando para Internet » PHP »

upload de imagenes que nose visualizan

Estas en el tema de upload de imagenes que nose visualizan en el foro de PHP en Foros del Web. Hola a todos, tengo el siguiente problema, hago un upload a través de un formulario y la imagen se carga, la BBDD se actualiza, pero ...
  #1 (permalink)  
Antiguo 10/02/2005, 14:11
Avatar de illman  
Fecha de Ingreso: mayo-2001
Mensajes: 115
Antigüedad: 22 años, 11 meses
Puntos: 0
upload de imagenes que nose visualizan

Hola a todos, tengo el siguiente problema, hago un upload a través de un formulario y la imagen se carga, la BBDD se actualiza, pero la imagen no se visualiza.

La descargo, y esta todo ok. La vuelvo a cargar y sigue sin visualizarse.

No se ni por donde empezar. El mismo script en otros servidores no da problemas, pero es que la imagen esta correcta, s como si el servidor no supiera que se trata de una imagen.

Tan solo utilizo las funciones normales, ninguan historia especial, move_uploa..., imagecreate,...

No se si me explico.
  #2 (permalink)  
Antiguo 10/02/2005, 19:06
Avatar de erichfrom  
Fecha de Ingreso: octubre-2004
Mensajes: 148
Antigüedad: 19 años, 5 meses
Puntos: 1
porque no pones el codigo
  #3 (permalink)  
Antiguo 11/02/2005, 02:51
Avatar de illman  
Fecha de Ingreso: mayo-2001
Mensajes: 115
Antigüedad: 22 años, 11 meses
Puntos: 0
Pues tienes razón, aquí va:

<?
//"UPLOAD DE LA IMAGEN";
$nuevo=1; //"UNA SECUENCIA ÚNICA"
$tipo_archivo = $HTTP_POST_FILES['archivo']['type'];
$nombre_upload = $HTTP_POST_FILES['archivo']['name'];
//$nombre_archivo_bd= $nombre_upload;
$laextension=explode(".",$nombre_upload);
$extension=$laextension[1];
$tamano_archivo = $HTTP_POST_FILES['archivo']['size'];
$nombre_archivo_bd = "PAUTA".$nuevo;



if ($tamano_archivo < 10000000 and ($extension=="jpg" or $extension=="JPG")) { // Imagen JPG
$nombre_archivo_bd.=".jpg";
$nombre_archivo = "DIRECTORIO/".$nombre_archivo_bd;

if (move_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'], $nombre_archivo)) {
// Nombre del archivo => $nombre_archivo
$max_width=800; // Anchura máxima
$max_height=800; // Altura máxima
$size = getimagesize ($nombre_archivo); //datos de la imagen

// Cambiar medidas
$x_ratio = $max_width / $size[0];
$y_ratio = $max_height / $size[1];
if ( ($size[0] <= $max_width) && ($size[1] <= $max_height) ) {
$tn_width = $size[0];
$tn_height = $size[1];
} else if (($x_ratio * $size[1]) < $max_height) {
$tn_height = ceil($x_ratio * $size[1]);
$tn_width = $max_width;
} else {
$tn_width = ceil($y_ratio * $size[0]);
$tn_height = $max_height;
}

$im=@imagecreatefromjpeg($nombre_archivo);
$small = imagecreatetruecolor($tn_width,$tn_height); // new image
imagecopyresampled($small, $im, 0, 0, 0, 0, $tn_width, $tn_height, $size[0], $size[1]);
imagedestroy($im); // liberar memoria
if (imagejpeg($small,$nombre_archivo,75)) { $carga=1; } else { $carga=2; } // guarda imagen

$max_width=150; // maximum width
$max_height=150; // maximum height

$nombre_archivo; // name of file - must be jpg
$size = getimagesize ($nombre_archivo); // params of image

$x_ratio = $max_width / $size[0];
$y_ratio = $max_height / $size[1];

// Cambiar medidas
if ( ($size[0] <= $max_width) && ($size[1] <= $max_height) ) {
$tn_width = $size[0];
$tn_height = $size[1];
} elseif (($x_ratio * $size[1]) < $max_height) {
$tn_height = ceil($x_ratio * $size[1]);
$tn_width = $max_width;
} else {
$tn_width = ceil($y_ratio * $size[0]);
$tn_height = $max_height;
}
$im=@imagecreatefromjpeg($nombre_archivo); // path to your gallery
$small = imagecreatetruecolor($tn_width,$tn_height); // new image
imagecopyresampled($small, $im, 0, 0, 0, 0, $tn_width, $tn_height, $size[0], $size[1]);
// below is main function resampling image

ImageDestroy($im); // free memory
$path="DIRECTORIO/p_".$nombre_archivo_bd;
if (imagejpeg($small,$path,75)) { $carga=1; } else { $carga=2; }


} else { $carga=0; }

?>

Esta es la parte del código que copia y redimensiona la image
  #4 (permalink)  
Antiguo 11/02/2005, 03:16
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,
Cita:
El mismo script en otros servidores no da problemas, pero es que la imagen esta correcta, s como si el servidor no supiera que se trata de una imagen.
Quizas el problema es que el servidor web (apache) no tiene permisos para leer y enviar esa imagen. Suele ser el caso en que el usuario PHP y el usuario Apache son distintos, con lo que no tienen permisos de acceso iguales.

Prueba a darle permisos de lectura a todo el mundo al fichero despues de crearlo, algo como:
Código PHP:
 if (imagejpeg($small,$path,75)) { $carga=1;
chmod($path,0755); } else { $carga=2; } 
Quizas necesites usar umask() (www.php.net/umask) para que el chmod funcione como quieres.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 11/02/2005, 03:32
Avatar de illman  
Fecha de Ingreso: mayo-2001
Mensajes: 115
Antigüedad: 22 años, 11 meses
Puntos: 0
Efectivamente, me acabo de dar cuenta. Un compañero me ha indicado el error, ahora realizo un chmod ($archivo, $permisos). y todo correcto muchas gracias a todos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:46.