簡體   English   中英

如何修復Mime零件錯誤為0的無效零件請求

[英]How to fix Invalid multipart request with 0 mime parts error

我正在嘗試使用nodejs express將文件上傳到Google驅動器,從郵遞員發送發帖請求,我收到錯誤消息“無效的分段請求,其中mime部分為0。”問題在請求主體內,我認為,任何想法都將不勝感激這個問題或任何建議,謝謝。

let file = req.files.form_doc_20;

var contentType = file.type || 'application/octet-stream';
let parentId = 'root';

const boundary = '-------314159265358979323846';
const delimiter = "\r\n--" + boundary + "\r\n";
const close_delim = "\r\n--" + boundary + "--";

var data = fs.readFileSync(file.path);
let metadata = {
    title: file.name,
    mimeType: contentType,
    parents: [parentId]
};

var base64Data = Buffer(data, 'base64');

var multipartRequestBody =
    delimiter +
    "Content-Type: application/json\r\n\r\n" +
    JSON.stringify(metadata) +
    delimiter +
    "Content-Type: " + contentType + "\r\n" +
    "Content-Transfer-Encoding: base64\r\n" +
    "\r\n" +
    base64Data +
    close_delim;

let options = {
    url: 'https://www.googleapis.com/upload/drive/v3/files',
    method: "POST",
    headers: {
        'Content-Type': "multipart/related; boundary=\"" + boundary + "\"",
        'Authorization': "Bearer " + req.body.token_configuration.access_token,
    },
    body: multipartRequestBody,
    qs: {
        fields: "id, name, mimeType, modifiedTime, size",
        uploadType: 'multipart'
    },
    json: true
};

helper.http_request(options, (err1, response) => {
    if (err1) {
        return res.json({ msg: 'Failed to upload the file.', error: response });
    }
    else {
        return res.json({ result: response });
    }
});

我認為您的腳本幾乎是正確的,並且您的腳本通過修改以下3點來起作用。

修改要點:

  1. 使用Drive API v3時,請使用name屬性代替title
  2. 可以通過new Buffer(data).toString('base64')檢索文件的base64Data
  3. 當使用json: true of options ,錯誤的Invalid multipart request with 0 mime parts.的錯誤Invalid multipart request with 0 mime parts. 發生。 請刪除此。

修改后的腳本:

請進行如下修改。

1:

從:
 title: file.name, 
至:
 name: file.name, 

2:

從:
 var base64Data = Buffer(data, 'base64'); 
至:
 var base64Data = new Buffer(data).toString('base64'); 

3:

請從options刪除json: true

注意:

  • 修改后的腳本假定您的環境可以使用Drive API上傳文件。 如果發生與API相關的錯誤,請確認是否啟用Drive API。 另外,請確認訪問令牌中包含的范圍。
  • 我可以確認修改后的腳本可以將文件上傳到Google雲端硬盤。 因此,如果發生其他錯誤,則認為不是此腳本的另一部分是原因。

參考文獻:

如果這些修改對您的情況沒有幫助,我深表歉意。

暫無
暫無

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

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