gpt4 book ai didi

javascript - Google Drive SDK 通过JS从浏览器上传文件

转载 作者:行者123 更新时间:2023-12-03 00:02:59 26 4
gpt4 key购买 nike

v3的官方文档没有提供文件上传(图片)驱动的示例。 https://developers.google.com/drive/api/v3/manage-uploads

所以我有创建文件夹的代码,并且我需要将文件上传到该文件夹​​。

function createFolder(){
var parentId = '';//some parentId of a folder under which to create the new folder
var fileMetadata = {
'name' : 'New Folder',
'mimeType' : 'application/vnd.google-apps.folder',
'parents': [ROOT_FOLDER]
};
gapi.client.drive.files.create({
resource: fileMetadata,
}).then(function(response) {
switch(response.status){
case 200:
var file = response.result;
console.log('Created Folder Id: ', file);
break;
default:
console.log('Error creating the folder, '+response);
break;
}
});
}

您能否发布一个示例,说明如何将文件上传到 Drive API v3 中的目录?谢谢

最佳答案

  • 您想要使用 Drive API 将文件上传到特定文件夹。
  • 运行问题中的脚本时,会创建新文件夹。
    • 也就是说,您已经可以使用 Drive API。

如果我的理解是正确的,这个示例脚本怎么样?不幸的是,在我的环境中,无法使用 gapi.client.drive.files.create() 上传文件。同时可以创建新文件和新文件夹。我认为这可能是规范。所以我使用以下脚本作为解决方法。我认为针对您的情况有几种解决方案。因此,请将此视为其中之一。

示例脚本:

let file = document.getElementsByName('upFile')[0].files[0]; // file

var metadata = {
name: file.name,
mimeType: file.type,
parents: ['### folderId ###'], // Please set folderId here.
};
var form = new FormData();
form.append('metadata', new Blob([JSON.stringify(metadata)], {type: 'application/json'}));
form.append('file', file);
fetch('https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart', {
method: 'POST',
headers: new Headers({'Authorization': 'Bearer ' + gapi.auth.getToken().access_token}),
body: form
}).then((res) => {
return res.json();
}).then(function(val) {
console.log(val);
});

注意:

  • 在此示例脚本中,假设文件由 <input type="file" name='upFile'> 输入.
  • 在此示例脚本中,可以上传大小小于 5 MB 的文件。如果您要上传超过5MB的大文件,请使用断点续传。从你的问题来看,我认为图像文件可能小于 5 MB。所以我提出了这个脚本。

引用文献:

关于javascript - Google Drive SDK 通过JS从浏览器上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55092661/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com