Ver Mensaje Individual
  #3 (permalink)  
Antiguo 28/09/2008, 02:07
Avatar de estibaliz2006
estibaliz2006
 
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 18 años, 3 meses
Puntos: 1
Respuesta: problema subiendo mas de un archivo

bueno, pues nada....he hecho algunos cambios y ahora me encuentro con lo siguiente: si sube un único archivo, todo ok. si sube más de uno (recordad que antes de estos cambios lo único que hacía cuando se trataba de subir más de un archivo, era que solo subía el primero los demás nada...pero en la base de datos también insertaba únicamente el primer registro). bueno pues ahora tras los cambios, cuando tratas de subir más de un archivo, da el error:

Cannot redeclare redimensionar() (previously declared in subir.php online 8, que es donde comienza a definirse la funcion redimensionar.

qué cambios he metido? pues he seguido las faqs y tengo lo siguiente (los cambios en violeta y negrita, ok?)

formulario de subida (todo sigue como estaba)
Código PHP:
echo "<form name=form action='subir.php? ENCTYPE=multipart/form-data METHOD=POST>"
echo 

<input type='file' name='archivo[]' ><br> 
<input type='file' name='archivo[]' ><br>     
<input type='file' name='archivo[]' ><br> 
<input type='submit' value='Subir' > 
"

archivo subir.php (aquí van los cambios, ya os digo, en violeta y en negrita:
//////////////////////////////////////////////
if (isset ($_FILES["archivo"]))
{
$tot = count($_FILES["archivo"]["name"]);
for ($i = 0; $i < $tot; $i++)
{

function redimensionar($type, $img_original, $img_nueva, $img_nueva_anchura, $img_nueva_altura, $img_nueva_calidad)
{
$defecto = 'img/defecto.jpg';
if(file_exists($img_original)) {
// crear imagen desde original
$type=strtolower($type);
switch($type)
{
case 'jpeg': $img = ImageCreateFromJPEG($img_original); break;
case 'jpg': $img = ImageCreateFromJPEG($img_original); break;
case 'png': $img = ImageCreateFromPNG($img_original); breaK;
case 'gif': $img = ImageCreateFromGIF($img_original); breaK;
case 'wbmp': $img = ImageCreateFromWBMP($img_original); break;
default: $img = ImageCreateFromJPEG($defecto); break;
}
} else {
$img = ImageCreateFromJPEG($defecto);
}
if(!empty($img)) {
$new_w_R = ImageSX($img);
$new_h_R = ImageSY($img);
//$img_nueva_altura = 50;
// se calcula la relación alto/ancho
$aspect_ratio = $new_h_R/$new_w_R;
$aspect_ratio2 = $new_w_R/$new_h_R;
if ($new_w_R >= $new_h_R){
// se ajusta al nuevo tamaño
$img_nueva_altura = abs($img_nueva_anchura * $aspect_ratio);
}
else{$img_nueva_anchura = abs($img_nueva_altura * $aspect_ratio2);}
// crear imagen nueva

$thumb = ImageCreateTrueColor($img_nueva_anchura,$img_nueva _altura);
// redimensionar imagen original copiandola en la imagen. La imagen se reajustará al nuevo tamaño
ImageCopyResampled($thumb,$img,0,0,0,0,$img_nueva_ anchura,
$img_nueva_altura,ImageSX($img),ImageSY($img));
// guardar la imagen redimensionada donde indica $img_nueva
ImageJPEG($thumb,$img_nueva,$img_nueva_calidad);
}
}
$max=1500000; //tamaño máximo permitido

//inseción de imagen
$fileSize = $_FILES['archivo']['size'][$i];
$fileType = $_FILES['archivo']['type'][$i];
$local = $_FILES['archivo']['name'][$i];
$remoto = $_FILES['archivo']['tmp_name'][$i];
//echo $tmpName;
$prefijo = substr(md5(uniqid(rand())),0,6);
$uploaddir = "img/";

if($fileSize < $max){
ini_set("memory_limit","32M");
$uploadfile = $uploaddir.$prefijo."_".$_FILES['archivo']['name'][$i]; //archivo original

if (move_uploaded_file($remoto, $uploadfile)) {
chmod($uploadfile, 0644);

//redimensionar
$source=$uploadfile; // archivo de origen
$dest = $uploaddir."/th_".$prefijo."_".$local;//archivo thumbails
redimensionar("jpg",$source,$dest,50,50,95);//redimensionamos el archivo original a 120x120
$x=$i;
do{
$x++;
if( $archivo != "" ){


$link = mysql_connect("localhost","user","pass") or die('Error conectando a la base de datos.');

mysql_select_db("basededatos",$link) or die('Error seleccionando la base de datos.');
$ruta = "img/".$prefijo."_".$local;
$rutab = "img/peq_".$prefijo."_".$local;
$archivo=$_POST['archivo'][$i];
mysql_query("INSERT INTO imagenes(imagen,thumbailimg) VALUES ('$ruta','$rutab')");
}
}while($x<$i);

header ("Location: exito.php");
}}}}
/////////////////////////////////////////