簡體   English   中英

帶有 fetch 或 XMLHttpRequest 的 HTTP PUT 文件/BLOB

[英]HTTP PUT File/BLOB with fetch or 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
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM