jQuery Ajax帖子文件

时间:2015-02-21 21:11:59

标签: php jquery ajax

我尝试通过ajax将上传的文件发布到php。

HTML

<form id="uploadForm" name="uploadForm" action="#" enctype="multipart/form-data"> 
<input id="name" name="name" class="form-control" type="text" />
<input id="csv" name="csv" type="file" />
<input id="CSVUpload" type="submit" class="btn btn-default" name="Submit" value="Hochladen" />

JS

$("#uploadForm").submit(function () {
    var formData = new FormData();
    formData.append( 'csv',  $( '#csv' )[0].files[0] ); 
    formData.append( 'name', $( '#name'));
    jQuery.ajax({
        url: "../lib/import.php",
        data: formData,
        type: "POST",
        success: alert('erfolgreich'),
        error: alert('Fehler'),
        cache: false,
        contentType: false,
        mimeType: 'multipart/form-data',
        processData: false
    });     
});

然后我尝试用PHP获取表单数据:

$_FILES['csv']
$_POST['name']

但Ajax调用以成功与错误完成......我感到困惑...... PHP文件无法正确执行...

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

您没有为successerror分配功能。

立即调用警告功能,然后分配其返回值。

您需要创建新功能以分配给successerror

success: function () { alert('erfolgreich') },
error: function () { alert('Fehler') },

您也将该函数称为提交处理程序,但不能阻止正常的表单提交。因此,浏览器将在处理对Ajax请求的响应之前加载新页面。

$("#uploadForm").submit(function (event) {
    event.preventDefault();

答案 1 :(得分:-1)

尝试使用您的成功和失败代码重构您的AJAX调用:

$.post('../lib/import.php', formData).done(function() {
    console.log('done');
}).fail(function() {
    console.log('error');
});

有关更多示例,请参阅http://api.jquery.com/jquery.post/