예를 들어 How can I upload files asynchronously?이라는 좋은 예제 BTW를 작성했습니다.POST를하지 않는 Ajax를 사용하여 여러 파일 업로드
내 POST는 내 PHP 파일을 만들고 있지 않습니다. 심지어 내가 print_r($_POST)
배열이 비어 있습니다. 이 스크립트로 2 개의 필드를 전달하려고합니다.
내 PHP 파일에서 echo "test";
을 간단히 수행하면 해당 문자열이 반환됩니다.
는 또한 여전히 운이
var words = $('#words').attr('value');
var file = $('#file').attr('value');
var formData = new FormData();
formData.append("words", words);
formData.append("file", file);
inserttest.php ...
<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>
var formData = new FormData($('form').serialize());
이 한 단계 더 툭 시도하지하고 formData
로에게 먼 길을 만들어 시도 됨
<?php
echo print_r($_POST);
?>
및
<?php
echo print_r($_FILES);
?>
당신은 ['$ $ _FILES'] (http://php.net/manual/en/reserved.variables.files.php)를 통해 파일을 찾을 것입니다. –
방금 php를'echo print_r ($ _FILES);'여전히 공백 배열로 돌아옴 –
웹 서버 로그를 살펴보아야 할 수도 있습니다. PHP 또는 서버 설정을 수정해야 할 수도 있습니다. 시간 제한, 메모리 제한, 크기 제한 , 크로스 도메인 보안, 목록에 간다. – tremor