将html文档上传到Google云端硬盘并将其编辑为Google文档

时间:2014-01-03 01:39:56

标签: google-drive-api

我正在处理的应用程序生成一个简单的(少于100K)html文档,不包含任何链接或图像。

我希望将此文档直接从浏览器“上传”到Google云端硬盘,以便用户随后可以在Google云端硬盘上编辑文档,充分利用其多用户共享和编辑功能。

我可以使用以下代码将html文档成功上传到Google云端硬盘:

function saveToDrive(tx){
  var boundary = '-------314159265358979323846';
  var delimiter = "\r\n--" + boundary + "\r\n";
  var close_delim = "\r\n--" + boundary + "--";
  var doc = "<html><body>" + tx.html + "</body></html>";
  var metadata = {
     'title': tx.client_name,
     'mimeType': 'application/json'
  };

  var multipartRequestBody =
     delimiter +
        'Content-Type: application/json\r\n\r\n' +
        JSON.stringify(metadata) +
        delimiter +
        'Content-Type: ' + 'text/html' + '\r\n' +
        '\r\n' +
        doc +
        close_delim;

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

}

上传会导致Google驱动器上的文档无法编辑或作为Google文档打开。

我还尝试使用'application / vnd.google-apps.document'作为文档的mimeType。

有没有办法将文档转换为可以在驱动器上作为Google文档进行编辑的格式?注意我已经尝试将convert = true添加为参数,但这不起作用。

1 个答案:

答案 0 :(得分:2)

您确定convert:true参数不起作用吗?我让你的代码为我工作。除了添加了'convert':'true'Authorization标头之外,其他所有内容都与上面相同。

 var request = gapi.client.request({
 'path': '/upload/drive/v2/files',
 'method': 'POST',
 'params': {'uploadType': 'multipart', 'convert':'true'},
 'headers': {
     'Authorization':'Bearer '+tokenGot,
    'Content-Type': 'multipart/mixed; boundary="' + boundary + '"'
 },
 'body': multipartRequestBody