我有这个HTML:
<form action='uploadhandle.php' method='POST' enctype="multipart/form-data">
<input type='file' class='fileinput' id='photo1' name='photo1'>
<input type='button' id='upload1' name='upload1' value='Upload'>
</form>
我的jquery代码是:
$('#upload1').click(function(){
$.ajax({
url: "uploadhandle.php",
data: 'photo1='+photo1,
success: function(data){$('#result_div').html(data)}
});
在我的uploadhandle.php中,当我尝试显示$ _POST ['photo1']时,没有任何内容出现,它是“未定义的”。 有谁知道我做错了什么?
非常感谢, 此致
答案 0 :(得分:6)
您无法通过AJAX上传文件。这是不可能的。
通过创建iframe并在后台提交信息,可以使用插件或其他“模拟”ajax的方法。有几个插件可以处理这个,有些非常复杂,有些只是简单地扩展了ajax函数。
话虽如此,您的语法服务器端也是错误的。您必须处理$_FILES
而不是$_POST
才能找到并使用提交的文件。
答案 1 :(得分:0)
您无法通过XHR(即ajax)上传文件数据。 XHR2中有一个文件上传API,但今天最实用且跨浏览器兼容的方式似乎是使用隐藏的iframe进行文件上传。