簡體   English   中英

Fetch API 將損壞的 Excel 文件上傳到 Dropbox

[英]Fetch API uploads corrupted Excel files to Dropbox

我正在使用 Dropbox SDK JS ( "dropbox": "^10.10.0" ) 通過filesGetTemporaryUploadLink上傳文件,此方法返回一個時間 URL 用於文件上傳。

我上傳文件的方式:

const fileUploadResult = await fetch(uploadDestination.url, {
    body: fileData,
    cache: "no-cache",
    credentials: "same-origin",
    headers: {
        "Content-Type": "application/octet-stream"
    },
    method: "POST",
    mode: "cors"
});

當我上傳 PDF 時,一切正常,但當我嘗試上傳.xlsx文件時,該文件以損壞的方式上傳。

我嘗試使用Content-Type ,但是當我將application/octet-stream更改為 Excel 的 MIME ( application/vnd.openxmlformats-officedocument.spreadsheetml.sheet ) 或更改為binar/octet-stream時,出現錯誤:

加載資源失敗:服務器響應狀態為 400(錯誤請求)

這很奇怪,通過 Fetch API 通過POST發送 PDF 和 Excel 文件有什么區別?

正如@Greg 提到的,問題是FormData不必要地包裝文件,一旦我刪除了這個包裝,一切都正常工作:

const fileData = domRef.files[0];

const fileUploadResult = await fetch(uploadDestination.url, {
    body: fileData,
    cache: "no-cache",
    credentials: "same-origin",
    headers: {
        "Content-Type": "application/octet-stream"
    },
    method: "POST",
    mode: "cors"
});

暫無
暫無

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

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