Ver Mensaje Individual
  #4 (permalink)  
Antiguo 29/09/2008, 02:25
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

¡¡¡POR FIN!!!! Bueno....pues aquí tenéis la solución para el que pueda necesitar algo así. es un sistema que redimensiona las imágenes subidas y permite además subir más de una a la vez. supongamos que en este caso puede subir hasta cuatro (cómo máximo) imágenes. Ahí va:

formulario:

Código PHP:
echo "<form name=form onReset='return Limpiar();' action='subir.php' ENCTYPE=multipart/form-data METHOD=POST>";
echo 
"Por favor, seleccione hasta un máximo de 2 imágenes adicionales para el producto: <br><br>
<input type='file' name='archivo[]' class=caja><br>
<input type='file' name='archivo[]' class=caja><br>    
<input type='file' name='archivo[]' class=caja><br>
<input type='file' name='archivo[]' class=caja><br>    
<input type='submit' value='Subir' class=caja>
"

archivo subir.php:

Código PHP:
if (isset ($_FILES["archivo"])) 

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);
}
}
$tot count($_FILES["archivo"]["name"]);
for (
$i 0$i $tot$i++)
{


//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];
$prefijo substr(md5(uniqid(rand())),0,6);
$uploaddir "img/"
$max=1500000//tamaño máximo permitido
if($filesize $max){
ini_set("memory_limit","32M");

$img_gr $uploaddir.$prefijo."_".$_FILES['archivo']['name'][$i];    //archivo original
$img_th =  $uploaddir."/th_".$prefijo."_".$_FILES['archivo']['name'][$i];//archivo thumbails

if (move_uploaded_file($remoto$img_gr)) {
chmod($img_gr0644);
 
             
//redimensionar    
$source=$img_gr// archivo de origen
$dest=$img_th// archivo de origen
redimensionar("jpg",$source,$dest,50,50,95);//redimensionamos el archivo original a 50x50
}

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

mysql_select_db("pruebamul",$link) or die('Error seleccionando la base de datos.'); 
    
$ruta =  "img/".$prefijo."_".$local;
    
$rutab =  "img/th_".$prefijo."_".$local;
$archivo=$_POST['archivo'][$i];
if (
$local !=="") { 
    
 
mysql_query("INSERT INTO imagenes(imagen,imagen_th) VALUES ('$ruta','$rutab')"); 
 
header ("Location: exito.php");
}}}}