如何将文本内容从textarea或div标签保存到谷歌驱动器

时间:2017-01-21 16:31:57

标签: javascript html google-drive-api

我想将文本从我的textarea html元素保存到google drive.I已经搜索了google drive api等。我得到的是这段代码:

<div class="g-savetodrive"
data-src="//example.com/path/to/myfile.pdf"
data-filename="My Statement.pdf"
data-sitename="My Company Name">
</div>

</script> 
<script type="text/javascript">
window.___gcfg = {
lang: 'en-US'};
</script>


<script src = 'https://apis.google.com/js/platform.js' async defer>
</script>

但正如您在上面的代码中所看到的,它会搜索我的物理目录并正在查找文件。

如何将源代码更改为类似于Document.getElementById(“mytextarea”)。value或类似的东西。

祝你好运

1 个答案:

答案 0 :(得分:0)

我认为您应该使用之前Files.createFiles.insert来自Drive v2。

HTTP请求

此方法通过两个单独的URI提供媒体上传功能。有关详细信息,请参阅有关媒体上载的文档。

上传URI,用于媒体上传请求:

POST https://www.googleapis.com/upload/drive/v3/files

元数据URI,仅用于元数据请求:

POST https://www.googleapis.com/drive/v3/files

这是使用Files.insert从文档中用JS编写的片段。

function insertFile(fileData, callback) {
  const boundary = '-------314159265358979323846';
  const delimiter = "\r\n--" + boundary + "\r\n";
  const close_delim = "\r\n--" + boundary + "--";

  var reader = new FileReader();
  reader.readAsBinaryString(fileData);
  reader.onload = function(e) {
    var contentType = fileData.type || 'application/octet-stream';
    var metadata = {
      'title': fileData.fileName,
      'mimeType': contentType
    };

    var base64Data = btoa(reader.result);
    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;

    var request = gapi.client.request({
        'path': '/upload/drive/v2/files',
        'method': 'POST',
        'params': {'uploadType': 'multipart'},
        'headers': {
          'Content-Type': 'multipart/mixed; boundary="' + boundary + '"'
        },
        'body': multipartRequestBody});
    if (!callback) {
      callback = function(file) {
        console.log(file)
      };
    }
    request.execute(callback);
  }
}