Pongo el código completo de la aplicación :
Código PHP:
<?php
function CargarJpeg ($nombreimg) {
$im = @imagecreatefromjpeg ($nombreimg); /* Intento de apertura */
if (!$im) { /* Comprobar si ha fallado */
$im = imagecreate (150, 30); /* Crear una imagen en blanco */
$bgc = imagecolorallocate ($im, 255, 255, 255);
$tc = imagecolorallocate ($im, 0, 0, 0);
imagefilledrectangle ($im, 0, 0, 150, 30, $bgc);
/* Mostrar un mensaje de error */
imagestring ($im, 20, 30, 40, "Error cargando $nombreimg", $tc);
imagedestroy($im);
}
return $im;
}
function RedimensionaImagen ($nombreimgdest , $original, $hmax, $anchura) {
$datos[0] = imagesx($original);
$datos[1]= imagesy($original);
$ratio = ($datos[0] / $anchura);
$altura = ($datos[1] / $ratio);
if($altura>$hmax){$anchura2=$hmax*$anchura/$altura;$altura=$hmax;$anchura=$anchura2;}
$thumb = imagecreatetruecolor($anchura,$altura);
imagecopyresampled($thumb, $original, 0, 0, 0, 0, $anchura, $altura, $datos[0], $datos[1]);
header( 'Content-Type: image/jpeg' );
if(!imagejpeg($thumb,$nombreimgdest,75)){
if($thumb)
imagedestroy($thumb);
return false;
}
else{
if($thumb)
imagedestroy($thumb);
return true;
}
}
session_start();
// Script Que copia el archivo temporal subido al servidor en un directorio.
$k=explode(".",$HTTP_POST_FILES['fileUpload']['name']);
$tamanio=count($k);
// Definimos Directorio donde se guarda el archivo
$dir = './fotos/';
$dir2=$SESSION["login"];
$dir= $dir.$dir2.'/';
mkdir($dir, 0777);
// Intentamos Subir Archivo
// (1) Comprovamos que existe el nombre temporal del archivo
if (isset($HTTP_POST_FILES['fileUpload']['tmp_name'])) {
// (2) - Comprovamos que se trata de un archivo de imágen
if(strcasecmp($k[$tamanio-1],'JPG')==0 || strcasecmp($k[$tamanio-1],'JPEG')==0) {
// (3) Por ultimo se intenta copiar el archivo al servidor.
$aux=CargarJpeg($HTTP_POST_FILES['fileUpload']['tmp_name']);
$destimagen=$dir.$HTTP_POST_FILES['fileUpload']['name'];
if (!RedimensionaImagen($destimagen ,$aux ,600 ,440)){
$errors= error_get_last();
echo '<script>parent.resultadoUpload (\'3\', \''.$HTTP_POST_FILES['fileUpload']['name'].'\',\''.$errors['message'].'\');</script>';
}
else {
$dirmin='./miniaturas/';
$dirmin=$dirmin.$dir2.'/';
mkdir($dirmin);
$original=CargarJpeg($dir.$HTTP_POST_FILES['fileUpload']['name']);
RedimensionaImagen($dirmin.$HTTP_POST_FILES['fileUpload']['name'], $original,180 ,150);
imagedestroy($aux);
imagedestroy($original);
echo '<script>parent.resultadoUpload (\'0\', \''.$HTTP_POST_FILES['fileUpload']['name'].'\',\''.$dir2.'\');</script>';
}
}
echo '<script>parent.resultadoUpload (\'2\', \''.$HTTP_POST_FILES['fileUpload']['name'].'\',\''.$k[1].'\');</script>';
}
echo '<script>parent.resultadoUpload (\'1\', \''.$HTTP_POST_FILES['fileUpload']['name'].'\',\''.$k[1].'\');</script>';
?>
</body>
Espero que vosotros veais el fallo porque sólo se da con algunas imagenes y no sé por qué.
Muchas Gracias por todo.