繁体   English   中英

如何使用 javascript 在 Google Drive 上创建文件夹

[英]How to create a folder on Google Drive using javascript

现在我正在使用此代码将文件上传到 Google Drive: https : //stackoverflow.com/a/11657773/1715263它适用于文本文件。

使用相同的代码,我尝试使用来自 Google 的此信息创建一个文件夹: https : //developers.google.com/drive/folder

所以谷歌说“内容类型:应用程序/json”进入标题,“应用程序/vnd.google-apps.folder”应该是正文中的mimetype(?),这就是我在我的代码中所做的,其中现在看起来像这样:

function createFolder() 
{
    var access_token = googleAuth.getAccessToken();

    var json = JSON.stringify({
        mimeType: 'application/vnd.google-apps.folder',
        title: 'Folder',
    });

    var body =  "Content-Type: application/json" + "\r\n" +
                "Content-Length: " + json.length + "\r\n" + "\r\n" +
                json;

    gapi.client.request({

        'path': '/upload/drive/v2/files/',
        'method': 'POST',
        'params': {'uploadType': 'multipart'},
        'headers': {
            'Content-Type': 'application/json',
            'Authorization': 'Bearer ' + access_token,             
        },
        'body': body
    }).execute(function(file) { 
        document.getElementById("info").innerHTML = "Created folder: " + file;
    }); 

但它只是创建了一个名为“Untitled”的文件,它没有文件夹,您无法打开它。

当我将“headers”部分中的“Content-Type”更改为“application/vnd.google-apps.folder”并删除“body”部分时,它正在创建一个名为“Untitled”的文件夹。

如何让它创建具有特定标题的文件夹?

最后通过谷歌搜索 Claudios 代码让它工作,这让我找到了这段代码: https ://stackoverflow.com/a/11361392/1715263

改变的重要事情是“路径”,它现在是“/drive/v2/files/”而不是“/upload/drive/v2/files/”。 我刚刚删除了'gapi.client.load'-function,添加了标题信息并更改了bodys mimeType。

所以这是代码:

function createFolder() {

   var access_token = googleAuth.getAccessToken();

   var request = gapi.client.request({
       'path': '/drive/v2/files/',
       'method': 'POST',
       'headers': {
           'Content-Type': 'application/json',
           'Authorization': 'Bearer ' + access_token,             
       },
       'body':{
           "title" : "Folder",
           "mimeType" : "application/vnd.google-apps.folder",
       }
   });

   request.execute(function(resp) { 
       console.log(resp); 
       document.getElementById("info").innerHTML = "Created folder: " + resp.title;
   });
}

试试下面的代码:

function createFolder(folderName) {
  var body = {
    'title': folderName,
    'mimeType': "application/vnd.google-apps.folder"
  };

  var request = gapi.client.drive.files.insert({
    'resource': body
  });

  request.execute(function(resp) {
    console.log('Folder ID: ' + resp.id);
  });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM