Me he topado con un error que no se como arreglarlo.
He creado, un formulario para subir 12 fotografías a la vez, pero cuando le doy al boton para subirlas no me hace nada, solamente me deja subir 4 fotografía... Luego me he dado cuenta que es por el tamaño total de todos los archivos. He probado en fotofrafias pequeñas de apenas 30 Kb y asi funciona todas, pero si la imagen ocupa 1 o 2 mb, ahí se queda y no hace nada.
El script que uso es este:
Código PHP:
ini_set("memory_limit", "200000000");
ini_set("set_time_limit", "300");
if (@chdir ("../../../fotografias/$_GET[id]")) {}
else
{
$destino = "../../../fotografias/$_GET[id]";
mkdir ($destino);
chmod($destino, 0777);
}
for ($i=1;$i<=12;$i++)
{
$imag="imagen$i";
$max_upload_width = 640;
$max_upload_height = 480;
// if uploaded image was JPG/JPEG
if($_FILES[$imag]["type"] == "image/jpeg" || $_FILES[$imag]["type"] == "image/pjpeg"){
$image_source = imagecreatefromjpeg($_FILES[$imag]["tmp_name"]);
}
// if uploaded image was GIF
if($_FILES[$imag]["type"] == "image/gif"){
$image_source = imagecreatefromgif($_FILES[$imag]["tmp_name"]);
}
// BMP doesn't seem to be supported so remove it form above image type test (reject bmps)
// if uploaded image was BMP
if($_FILES[$imag]["type"] == "image/bmp"){
$image_source = imagecreatefromwbmp($_FILES[$imag]["tmp_name"]);
}
// if uploaded image was PNG
if($_FILES[$imag]["type"] == "image/x-png"){
$image_source = imagecreatefrompng($_FILES[$imag]["tmp_name"]);
}
if($_FILES[$imag]["type"] == "image/png"){
$image_source = imagecreatefrompng($_FILES[$imag]["tmp_name"]);
}
$remote_file = "../../../fotografias/$_GET[id]/".$_FILES[$imag]["name"];
echo $remote_file;
imagejpeg($image_source,$remote_file,50);
chmod($remote_file,0777);
list($image_width, $image_height) = getimagesize($remote_file);
$ratio= $image_width/ $image_height;
if ($ratio>1.5 or $ratio<0.6)
{$mensaje="Los tamaños de la imagen (ancho x alto) son erróneos";
unlink($destino);
$seguir=0;
$mostrar_mensaje=1;
}
else
{
if($image_width>$max_upload_width || $image_height >$max_upload_height){
$proportions = $image_width/$image_height;
if($image_width>$image_height){
$new_width = $max_upload_width;
$new_height = round($max_upload_width/$proportions);
}
else{
$new_height = $max_upload_height;
$new_width = round($max_upload_height*$proportions);
}
$new_image = imagecreatetruecolor($new_width , $new_height);
$image_source = imagecreatefromjpeg($remote_file);
imagecopyresampled($new_image, $image_source, 0, 0, 0, 0, $new_width, $new_height, $image_width, $image_height);
imagejpeg($new_image,$remote_file,100);
imagedestroy($new_image);
}
imagedestroy($image_source);
}
}
¿como lo puedo hacer para realizar una subida multiple sin tener este problema ?
Muchas gracias.