为什么PHP没有通过POST和jquery看到文件上传?

时间:2012-03-17 16:00:21

标签: php jquery file upload

我有这个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']时,没有任何内容出现,它是“未定义的”。 有谁知道我做错了什么?

非常感谢, 此致

2 个答案:

答案 0 :(得分:6)

您无法通过AJAX上传文件。这是不可能的。

通过创建iframe并在后台提交信息,可以使用插件或其他“模拟”ajax的方法。有几个插件可以处理这个,有些非常复杂,有些只是简单地扩展了ajax函数。

话虽如此,您的语法服务器端也是错误的。您必须处理$_FILES而不是$_POST才能找到并使用提交的文件。

祝你好运。

答案 1 :(得分:0)

您无法通过XHR(即ajax)上传文件数据。 XHR2中有一个文件上传API,但今天最实用且跨浏览器兼容的方式似乎是使用隐藏的iframe进行文件上传。

修改:请参阅How do you post to an iframe?