且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何将文件追加到FormData()?

更新时间:2022-11-18 22:04:30

我找到了错误的来源

  1. 我只需要FormData()-它会处理文件和隐藏字段.
  2. 我正在覆盖Content-Type.当我这样做时,表单边界丢失了:
  1. I only needed FormData() - it takes care of the file and hidden fields.
  2. I was overwriting Content-Type. Form boundaries were lost when I did this:

`xhr.setRequestHeader("Content-Type","multipart/form-data")

`xhr.setRequestHeader("Content-Type", "multipart/form-data")

更正后的代码在下面(以及某些上下文):

The corrected code is below (along with some context):

app.ports.uploadFile.subscribe(function(pathAndId){
    var [tasksrvPath, formId] = pathAndId
    try {
        var fd = new FormData(document.getElementById(formId));
        var r = new XMLHttpRequest()
        r.open("POST", tasksrvPath, true)
        r.setRequestHeader("Authorization", "Bearer " + token() )
        r.send(fd)
        r.onload = function() {
            app.ports.status.send(r.statusText)
        }
    } catch(e) {
        console.log(e.message);
    }
})