Ver Mensaje Individual
  #5 (permalink)  
Antiguo 30/10/2014, 12:38
kochas_40
 
Fecha de Ingreso: octubre-2014
Mensajes: 29
Antigüedad: 9 años, 6 meses
Puntos: 1
Respuesta: PHP solo me permite subir 5 archivos

no hace falta el 'POST', debido a que mi scipt (hecho en jquery) es el siguente:
Código HTML:
    $("#upArchivos").click(function(){
        var formData = new FormData($(".formArchivos")[0]);
        var message = ""; 
            $.ajax({
                url: 'upload.php',  
                type: 'POST',
                data: formData,
                cache: false,
                contentType: false,
                processData: false,
                beforeSend: function(){
                    message = $("<span class='before'>Subiendo Archivo(s), por favor espere...</span>");
                    showMessageSub(message)        
                },
                //una vez finalizado correctamente
                success: function(data){
                    message = $("<span class='success'>Archivo(s) Cargado(s)"+data+"</span>");
                    showMessageSub(message);
                },
                //si ha ocurrido un error
                error: function(){
                    message = $("<span class='error'>Ha ocurrido un error.</span>");
                    showMessageSub(message);
                }
            });
    });
el archivo upload.php al que se hace referencia:
Código PHP:
<?php
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'
{
    
$cantidad count($_FILES["archivo"]);
    
$respuesta=array();
    for (
$i=0$i $cantidad$i++) {
        
$file $_FILES['archivo']['name'][$i];
        
$respuesta[$i][0]=$file
        
//comprobamos si existe un directorio para subir el archivo si no es así, lo creamos
        
if(!is_dir("files/")) 
            
mkdir("files/"0777);
         
        
$destino "files/".$file;
        
//comprobamos si el archivo ha subido
        
if ($file && move_uploaded_file($_FILES['archivo']['tmp_name'][$i],$destino))
        {
           
sleep(2);//retrasamos la petición 2 segundos
           
$respuesta[$i][1]='true';
        }else{
            
$respuesta[$i][1] = 'false';
        }
    }
    echo 
json_encode($respuesta);
}else{
    throw new 
Exception("Error Processing Request"1);   
}
de hecho aqui tengo otro problema, ya que no he logrado que el script interprete la respuesta en json.

y el Formulario:
Código HTML:
<form enctype="multipart/form-data" class="formArchivos">
       <input name="archivo[]" type="file" id="archivos" multiple="true"/>
       <input type="button" value="Subir archivos" id="upArchivos"/>
 </form> 
lo raro es que si subo solo un archivo me toma 5, aunque los otros con nombre "null" y si subo mas de 5 archivos solo sube 5, sin marcar ningun error.