Framework 7文件上传ajax

时间:2018-01-02 10:01:49

标签: javascript jquery ajax html-framework-7

我正在尝试使用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
        });
      });
    }
  }
});

}

1 个答案:

答案 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,
   ...
});