diff --git a/index.html b/index.html index a90c805c..e6f3c9ab 100644 --- a/index.html +++ b/index.html @@ -70,20 +70,38 @@ * @param {File} fileData File object to read data from. * @param {Function} callback Function to call when the request is complete. */ - function insertFile(fileData, callback) { + function insertFile(title, content, callback) { if(driveUpload) { - var request = gapi.client.request({ - 'path' : '/upload/drive/v2/files', - 'method' : 'POST', - 'params' : { 'uploadType' : 'media' }, - 'headers' : { 'Content-Type' : 'text/plain' }, - 'body' : fileData }); - if (!callback) { - callback = function(file) { - console.log(file) - }; - } - request.execute(callback); + const + boundary = '-------314159265358979323846'; + const + delimiter = "\r\n--" + boundary + "\r\n"; + const + close_delim = "\r\n--" + boundary + "--"; + + var contentType = 'text/x-markdown'; + var metadata = { 'title' : title, 'mimeType' : contentType }; + + var base64Data = btoa(content); + 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); } }