我正在尝试使用Framework 7中的ajax
上传文件。
代码用于发布表单但需求已更改并添加了文件上载。
我试图修改现有代码而没有运气。
当我使用新的FormData()附加文件时抛出错误 我试图实现几种附加文件的方法,但遗憾的是它们都没有工作。
如果有人帮我解决问题
未捕获的TypeError:非法调用
function addVoiceMail() {
var status = '0';
var formData = myApp.formToJSON('#my-form-sms');
var data2 = JSON.stringify(formData);
var fileInput = document.getElementById("msg_file");
var post_data = new FormData();
if (fileInput.files.length > 0) {
post_data.append('file' , fileInput.files[0]);
}
$.ajax({
url: baseurl2 + 'somepage.php',
type: "POST",
data: {
Data: data2,
file: post_data,
},
crossDomain: true,
cache: false,
success: function (data) {
if (data == 'success') {
myApp.alert('sent', '');
mainView.router.load({
url: 'success.html',
ignoreCache: true,
animatePages: true
});
}else {
var errors = JSON.parse(data);
$.each(errors, function (key, value) {
myApp.addNotification({
title: 'Error',
message: value
});
});
}
}
});
}
答案 0 :(得分:0)
您的data
对象只需要包含FormData对象。您必须直接在FormData对象中添加data2
。
尝试这样的事情:
var formData = new FormData();
formData.append('file', myFile); //append file to FormData
formData.append('data', data2); //add additionnal informations
最后,将formData对象传递给ajax数据:
$.ajax({
data: formData,
...
});