http用fetch或xmlhttprequest放置文件/斑点



是否可以使用fetch上传文件?我不是在谈论FormData,但我想成为HTTP PUT的实际主体,而Content-Type正确的ContentType?

如果fetch无法使用,可以不使用XMLHttpRequest吗?此代码对我不起作用(事件是drop事件):

fetch('/foo', {
  method: 'PUT',
  body: event.dataTransfer.files[0],
});

编辑:

我专门谈论的是文件上传。如果body是文本,则此可以工作,但如果其FILE/BLOB

您可以创建表单数据,例如:

const body = new FormData();
const file = event.dataTransfer.files[0];
body.append('files', file , file.name);
fetch('/foo', {
  method: 'PUT',
  body
});

但是,如果您只想直接发送数据,则必须更改标头并使用Blob

const body = new Blob(event.dataTransfer.files, { type: 'application/octet-stream' });
fetch('/foo', {
  method: 'PUT',
  headers: new Headers({ 'Content-Type': 'application/octet-stream' }),
  body
});

相关内容

  • 没有找到相关文章

最新更新