23/03/2013, 20:23
|
| | Fecha de Ingreso: octubre-2011 Ubicación: Tierra
Mensajes: 64
Antigüedad: 13 años, 1 mes Puntos: 0 | |
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 |