亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用與無標題不同的名稱將文件上傳到 google drive api

如何使用與無標題不同的名稱將文件上傳到 google drive api

ABOUTYOU 2022-12-29 16:38:28
這是我的代碼結構,我試圖在對象“formData.append”中發送名稱,但我沒有成功。文檔表明:在正文上發送。文檔鏈接: https ://developers.google.com/drive/api/v3/reference/files/create - https://developers.google.com/drive/api/v3/manage-uploads#http_1我得到了這個答案。{ "kind": "drive#file", "id": "1uz_NN-IyoiPzaheAiKIJu6qlB7ZfxIX2", "name": "Untitled", "mimeType": "application/x-www-form-urlencoded" }名稱:《無題》- 我會很感激await User.updateMany({},    [{        $set: {            posts: {                $map: {                    input: "$posts",                    as: "post",                    in: {                        $mergeObjects: [                            "$$post",                            {                                "viewed": {                                    $add: [{ $size: "$$post.visitorIps" }, "$$post.viewed"]                                },                                "visitorIps": []                            }                        ]                    }                }            }        }    }])
查看完整描述

1 回答

?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊

這個改裝怎么樣?

修改點:

  • 似乎不能直接multipart/form-data使用ajax 請求FormData()。所以在這種情況下,需要創建結構multipart/form-data并將其作為數據發送。

    • 在您的腳本中,僅上傳文件內容而沒有文件元數據。這樣,上傳的文件就沒有文件名了。在這種情況下,需要上傳文件內容和文件元數據multipart/form-data。

  • 在您的腳本中,有 2 個屬性data

當以上幾點反映到您的腳本中時,它會變成如下。

修改腳本:

Upload.prototype.doUpload = function () {

    const file = this.file;  // It supposes that "this.file" is the blob.


    const fr = new FileReader();

    fr.readAsDataURL(file);

    fr.onload = function() {

      const boundary = "xxxxxxxxxx";

      let data = "--" + boundary + "\n";

      data += "Content-Type: application/json; charset=UTF-8\n\n";

      data += JSON.stringify({name: "test_file"}) + "\n";

      data += "--" + boundary + "\n";

      data += "Content-Transfer-Encoding: base64\n\n";

      data += fr.result.split(",")[1] + "\n";

      data += "--" + boundary + "--";

      $.ajax({

        type: "POST",

        beforeSend: function(request) {

          request.setRequestHeader("Authorization", "Bearer" + " " + localStorage.getItem("accessToken"));

          request.setRequestHeader("Content-Type", "multipart/related; boundary=" + boundary);

        },

        url: "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart",

        success: function (data) {

            console.log(data);

        },

        error: function (error) {

            console.log(error);

        },

        async: true,

        data: data,

        cache: false,

        processData: false,

        timeout: 60000

      });

    }

}

筆記:

  • 在這個修改后的腳本中,

    • 它假定this.file在您的腳本中是 blob。

    • 您的訪問令牌可用于將文件上傳到 Google 云端硬盤。

  • 使用uploadType=multipart時,最大文件大小為 5 MB。請注意這一點。


查看完整回答
反對 回復 2022-12-29
  • 1 回答
  • 0 關注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號