Ahí va:
//nombre aleatorio para la foto
$caracteres="abcdefghijklmnopqrstuvwxyxABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
$NumCaracteres=strlen($caracteres);
$nombreFoto="";
for($i=0;$i<10;$i++){
$num=rand(0,$NumCaracteres-1);
$nombreFoto.=$caracteres[$num];
}
$referencia=$_POST["referencia"];
//proceso de imágenes
$foto=$_FILES["foto"]["name"];
$ruta_foto="imagenes/".$foto;
$temporal=$_FILES["foto"]["tmp_name"];
if(is_uploaded_file($temporal)){
switch($_FILES["foto"]["type"]){
case "image/jpeg":
case "image/pjpeg":
move_uploaded_file($temporal,$ruta_foto);
$imagen=imagecreatefromjpeg($ruta_foto);
//chmod($ruta_foto,0777);
$original_x=imagesx($imagen);
$original_y=imagesy($imagen);
if($original_x>1024 || $original_y>1024){
$final_x=1024;
$final_y=round(($original_y * $final_x) / $original_x);
}else{
$final_x=$original_x;
$final_y=$original_y;
}
$final=imagecreatetruecolor($final_x,$final_y);
imagecopyresampled($final, $imagen, 0, 0, 0, 0, $final_x, $final_y, $original_x, $original_y);
imagejpeg($final,$ruta_foto);
break;
default: echo "No se va a procesar la foto. Debe estar en formato JPEG. ";
}
}else{
echo "Error al subir la foto.";
exit();
}
La creación aleatoria del nombre la hace correctamente, y he comprobado que en el formulario de envío los nombres de los input son correctos. El problema me viene en el if, que no lo cumple. No sé, es una cosa muy rara porque en la misma carpeta del mismo servidor hace unos días funcionaba y he recomprobado los permisos 17000 veces. ¿Será de la configuración del servidor?