首页 > 解决方案 > new formData() 在 Safari 浏览器中不起作用。我想将文件发送到后端,但使用 safari 会抛出错误

问题描述

这是我的 onDrop 函数-

onHandleDrop = (files) => {
  console.log(files);
  if (files[0].size > fileMax) {
    alert("File Size too big")
  }
  else {
    const currentFile = files[0];
    let formData = new FormData();
    formData.append('file', currentFile);
    axios.post(api_url + '/file/resume/upload',
      formData, {
        headers: {
          'Content-Type': 'multipart/form-data'
        }
      }).then(resp => {
        console.log("resp from submission " + JSON.stringify(resp))
        if (resp.data.responseCode == "1000" && resp.status == "200") {
          this.setState({ resume: resp.data.metadata, resumeMsg: true })
        }
      })
  }
}

这是我的 Dropzone 组件-

<Dropzone className="ignore" onDrop={files => this.onHandleDrop(files)} multiple={false} accept=".pdf,.doc">
    <div style={{ borderStyle: "dotted", borderWidth: "100%%", textAlign: "center" }}>
        {this.state.resume.length > 0 ? this.state.resume : "Drag & Drop your file here!"}
    </div>
</Dropzone>

问题是它不能在 mac 中使用 safari 浏览器。它抛出 405。有人可以告诉我哪里出错了,以及使用 new 的替代方法是什么,formData()以便它支持所有浏览器。如何将文件发送到我的 java 服务器?

标签: angularjsdropzone

解决方案


推荐阅读