我正在处理的应用程序生成一个简单的(少于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添加为参数,但这不起作用。
答案 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