Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/02/2011, 16:26
kirst
 
Fecha de Ingreso: septiembre-2009
Mensajes: 230
Antigüedad: 15 años, 4 meses
Puntos: 2
Form de subida multiple de archivos

Código PHP:
<form action="<?= $upload_form ?>" method="post" enctype="multipart/form-data">
      Imágenes a subir: <select name="cantidad">
                    <script type="text/javascript">
                    for(x=1;x<=20;x++){
                    document.write("<option value="+ x +">"+ x+"</option>");
                    }
                    </script>
      </select>
      <input type="submit" name="OK" value="OK"><br />      
+ No deberán pesar más de 8MBytes.<br />
+ Deberán ser: JPG, PNG O GIF.<br /><br />
<?php    
if(isset($_POST['OK'])){
        echo 
"Elegir Im&aacute;genes para Subir<br />";
            for(
$i=1;$i<=$_POST['cantidad'];++$i){
                echo 
"<input type=\"file\" name=\"archivo[]\"><br>";
            }
    if(empty(
$_GET['album'])) {
        echo 
"<label for=\"album\">Nombre del Album:</label> <input type=\"text\" name=\"album\" size=\"20\" /><br />";
         } else {
        echo 
"<label for=\"album\">Nombre del Album:</label> <input type=\"text\" name=\"album\" size=\"20\" value=".$_GET['album']." /><br />";
                 }
        echo 
"<input type=\"submit\" name=\"SUBIR\" value=\"Subir\">";
        echo 
"<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"52428800\" />";
        echo 
"<input type=\"hidden\" name=\"cant1\" value=\"$i\">";
    }
    
    if(isset(
$_POST['SUBIR'])){
        
$cantidad2 =count($_FILES["archivo"]);
        
$album $_POST['album'];        
        
        
$partes explode("."$nombre); 
        
$extencion end($partes); 
        
        for (
$j=0;$j<=$cantidad2;$j++){
                
$archivo $_FILES["archivo"]["tmp_name"][$j]; 
                
$tamanio $_FILES["archivo"]["size"][$j];
                
$tipo    $_FILES["archivo"]["type"][$j];
                
$nombre  $_FILES["archivo"]["name"][$j];
                
// Explode para saber la extencion del archivo
                
$partes explode("."$nombre); 
                
$extencion end($partes); 

                
        if (! (
$extencion == 'jpg' or $extencion == 'JPG' or $extencion == 'png' or $extencion == 'PNG' or $extencion == 'gif' or $extencion == 'GIF') ) 
            
$error['tipo'] = 'La imagen no concuerda con los tipos permitidos.'
        
            
        if (
$tamanio >= 8388608)
            
$error['peso'] = 'El archivo excede el tamaño de 8MBytes. Tiene que pesar menos.';

        if (empty(
$album))
            
$error['album'] = 'El Album tiene que tener un nombre.';
            
             
$x=$j;
             do{
             
$x++;
                if( 
$archivo != "" ){
                    if(empty(
$error)) {
                           
$fp fopen($archivo"rb");
                           
$contenido fread($fp$tamanio);
                           
$contenido addslashes($contenido);
                           
fclose($fp);
                           
//AQUI  INSERTE EN LA BASE DE DATOS
                           
                           // Creo la carpeta del album!
                           
if (is_dir($upload_folder.$_SESSION['nickname'].'/'.$album) == FALSE) {
                           
mkdir ($upload_folder.$_SESSION['nickname'].'/'.$album);
                           }
                           
                           
// Le doy un valor RANDOM al nombre del archivo para evitar errores
                           
$randomtext substr(md5(uniqid(rand())),0,6);
                           
                           
// Le doy la ruta de subida
                           
$uploaddir=$upload_folder.$_SESSION['nickname'].'/'.$album."/";
                           
                           
// Sacamos caracteres especiales al archivo subido por si es un script malicioso
                           
$nombre htmlspecialchars($nombre);
                           
                           
// Empiezo el proceso para achivar el tamaño y dimensiones de la imágen
                            //$maxsize += 8;
                            
list($width$height) = getimagesize("$archivo");
                            if(
$width '720'$width '720';
                            elseif(
$width <= '720'$width $width;
                            if(
$height '540'$height '540';
                            elseif(
$height <= '540'$height $height;
                            
//$width = min($width, $height);
                            
$tn imagecreatetruecolor($width$height);
                            
$image imagecreatefromjpeg("$archivo");
                            
imagecopyresampled($tn$image0000$width$height$width$height);
                            
                           
//if(copy($archivo, $uploaddir.$randomtext.'_'.$nombre))
                           
if(imagejpeg($tn$uploaddir.$randomtext.'_'.$nombre90))
                                {
                                   echo 
"<b>Subida con Exito:</b> ".$nombre."<br />";
                                   
$subida true;
                                }
                           }
                        } 
//if
                    
}
                    while(
$x<$j); }
             }
        
?>
    <? if (!empty($error) && $subida != true) { ?>        <? foreach ($error as $mensaje) { ?>
            <br />+ <?= $mensaje ?>
        <? ?>
    <? ?>
</form>

Bueno, con imagenes INFERIORES 1mb, no hay problema, las procesa, y las sube la servidor, cunado pongo imagenes de 1.5mb, 2mb, superiores, me vuelve al inicio del script sin ningun error ni problema ni nada, como si el arhcivo fuese ignorado! o, no lo se. No anda! Algien tiene idea que peude ser? Gracias de ante mano.