我尝试通过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文件无法正确执行...
感谢您的帮助!
答案 0 :(得分:0)
您没有为success
或error
分配功能。
您立即调用警告功能,然后分配其返回值。
您需要创建新功能以分配给success
和error
。
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/。