通过php上传Jquery ajax文件

时间:2012-11-09 10:37:23

标签: php jquery ajax upload

我的php fileupload有问题,我在jquery中通过ajax使用。

这是我在php上传文件中的代码:

if ($_FILES["file"]["error"] > 0)
{
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
} else {
    move_uploaded_file($_FILES["file"]["tmp_name"],"termine.csv");
    echo "Stored in: " . $_FILES["file"]["name"];
}

这是我的jquery ajax声明:

 $('#upload_csv').click( function() {
    $.ajax({
        url: '/playground/php/updatedates.php',
        type: 'POST',
        data: $('form#csv').serialize(),
    }).done(function(txt) {
            if(txt!='')alert(txt);
    });
});

这是我在index.php文件中的表单:

<form enctype="multipart/form-data" id="csv" method="POST">
            <div style="float:left">
            <input name="file" type="file" id="file" size="100">
            <br/>
            <input type="submit" id="upload_csv" value="upload csv file">
            </div>
        </form>

我得到的唯一错误信息是“错误”而没有别的。

希望有人可以提供帮助。

1 个答案:

答案 0 :(得分:2)

$().serialize始终创建一个url-encoded字符串,并忽略文件输入。你必须使用另一种方法。请参阅:http://api.jquery.com/serialize/

一种选择是将表单放在隐藏的iframe中并触发提交事件。

另请参阅jQuery文件上传插件:http://blueimp.github.com/jQuery-File-Upload/