Я привел пример How can I upload files asynchronously?, который является отличным примером BTW.Загрузка нескольких файлов с помощью Ajax, не делая POST
По какой-то причине мой POST не попадает в мой php-файл. Даже когда я print_r($_POST)
, массив становится пустым. Я пытаюсь передать 2 поля с этим скриптом.
Если я просто сделаю echo "test";
на моем php-файле, он вернет эту строку.
Я также попытался var formData = new FormData($('form').serialize());
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(':button').click(function(){
var formData = new FormData($('form')[0]);
$.ajax({
url: 'inserttest.php', //Server script to process data
type: 'POST',
xhr: function() { // Custom XMLHttpRequest
var myXhr = $.ajaxSettings.xhr();
if(myXhr.upload){ // Check if upload property exists
myXhr.upload.addEventListener('progress',progressHandlingFunction, false); // For handling the progress of the upload
}
return myXhr;
},
success: function(data) {
alert(data);
},
data: formData,
cache: false,
contentType: false,
processData: false
});
});
});
function progressHandlingFunction(e){
if(e.lengthComputable){
$('progress').attr({value:e.loaded,max:e.total});
}
}
</script>
</head>
<form enctype="multipart/form-data">
<input type="text" name="words" id="words" />
<input name="file" type="file" id="file" />
<input type="button" value="Upload" />
</form>
<progress></progress>
принял это еще один шаг и сделал это долгий путь с formData
... до сих пор не повезло
var words = $('#words').attr('value');
var file = $('#file').attr('value');
var formData = new FormData();
formData.append("words", words);
formData.append("file", file);
inserttest.php
Прочитано
<?php
echo print_r($_POST);
?>
и
<?php
echo print_r($_FILES);
?>
Вы найдете свои файлы через ['$ _FILES'] (http://php.net/manual/en/reserved.variables.files.php) superglobal –
Я только что изменил свой php на' echo print_r ($ _FILES); 'и он по-прежнему возвращается в виде пустого массива. –
Возможно, вам стоит взглянуть на журналы вашего веб-сервера, возможно, ваши настройки PHP или серверов необходимо устранить, многие возможности включают тайм-аут, ограничение памяти, ограничение размера сообщения , перекрестная защита домена, список можно продолжить. – tremor