我知道这个问题已经被问了很多次,我尝试了至少10种不同的代码来运行它,但都没有成功。
我正在尝试使用jQuery.ajax()
上传单个文件,但它不起作用。下面的代码总是输出:
请选择一个文件,因为文件名未设置或其他原因
HTML
<form enctype="multipart/form-data">
<input name="file" type="file" />
<input type="button" value="Upload" />
</form>
<div id="result"></div>
jQuery
$(function(){
$(document).ready(function(){
var files;
$('input[type=file]').on('change', prepareUpload);
function prepareUpload(event){
files = event.target.files;
};
$(':button').click(function(){
var formData = new FormData();
$.each(files, function(key, value){
formData.append(key, value);
});
alert(formData);
$.ajax({
url: 'check.php',
type: 'GET',
data: formData,
success: function(data){ $('#result').html(data); },
cache: false,
contentType: false,
processData: false
});
});
});
});
PHP
if(isset($_GET['file'])){
$filename = $_FILES['file']['name'];
if(isset($filename) && !empty($filename)){
echo 'sup my man?!';
}else{
echo 'please choose a file';
}
}else{
echo 'not set';
}
我不知道问题出在哪里,我知道它在FormData
对象创建中,因为警报-准备就绪无法正常工作。
顺便说一下,对我来说非常重要的是,它必须用jQuery编写。