[英]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.