Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/03/2013, 20:23
juanvc123
 
Fecha de Ingreso: octubre-2011
Ubicación: Tierra
Mensajes: 64
Antigüedad: 13 años
Puntos: 0
Exclamación subir varios archivos con XMLHttpRequest y php

tengo un script que manda los archivos por el XMLHttpRequest a php:
Código:
$(document).ready(function(){
	$("#btn").click(function(){
		//aqui quedó
				fileField = document.getElementById("input_file");

        		var allowedTypes = ['png', 'jpg', 'jpeg', 'exe', 'rar', 'gif'];   
				var filesLen = fileField.files.length;
				var fileInput = document.querySelector('#input_file');

				for (i = 0; i < filesLen; i++)
				{
				    var vidType = fileField.files[i].name.split('.');

				    if (allowedTypes.indexOf(vidType[vidType.length -1].toLowerCase()) != -1)
				    {
				        var progress = 'progress' + i;

				        $('input').before('<p>' + fileField.files[i].name + ' <progress id="' + progress + '"></progress></p>');

				        var xhr = new XMLHttpRequest();

				        xhr.open('POST', 'prueba.php',true);

				      (function(progress) { 
						    xhr.upload.onprogress = function(e) 
						    {
						        $('#' + progress).attr('value', e.loaded);
						        $('#' + progress).attr('max', e.total);
						    };
						}(progress));

				        xhr.onload = function()
				        {
				            $('#response').html(xhr.response);
				        };

				        var form = new FormData();
				        form.append('title', fileField.files[i].name);
				        form.append('film', fileInput.files[i]);
				        xhr.setRequestHeader("X-FILENAME", fileField.files[i].name);
				        xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    					xhr.setRequestHeader("Content-length", fileField.files[i].length);

				        xhr.send(form);

				    }

				    else
				    {
				        alert('Your file "' + fileField.files[i].name + '" \'s format isn\'t supported');    
				    }
				}
        });
    });
y el archivo prueba.php
Código:
<?php
$fn = (isset($_SERVER['HTTP_X_FILENAME']) ? $_SERVER['HTTP_X_FILENAME'] : false);
if ($fn) {
	// AJAX call
	file_put_contents(
		'uploads/' . $fn,
		file_get_contents('php://input')
	);
	echo "$fn se ha subido";
	exit();
}



?>
EL PROBLEMA ES QUE ME CREA LOS ARCHIVOS EN AL CARPETA DE DESTINO PERO ME LOS CREA VACIOS! NO SE PORQUE LO HACE SI LOS PARAMETROS SE ENVIARON BIEN