FormData fetch上传文件

1 如何上传,


var input = document.querySelector('input[type="file"]')

var data = new FormData()
data.append('file', input.files[0])
data.append('user', 'hubot')

fetch('/avatars', {
  method: 'POST',
  body: data
})

2 在fetch源码中;初始化header的时候,有如下源码


if (!headers.has('content-type') && options.body && typeof options.body.getBoundary === 'function') {
        headers.set('content-type', 'multipart/form-data; boundary=' + options.body.getBoundary());
    }

里面的options.body就是上面的body:data;

3 问题:
这里面的options.body.getBoundary哪里来的?

阅读 9.1k
3 个回答

options.body.getBoundary你可以自己定义,你的代码没有自定义这个方法。boundary一般是个分隔符,用来分隔多个文件或者表单项,

猜测是原型链上的

新手上路,请多包涵

应该是new FormData()时,FormData对象自带的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题