/* Now to create a new file */ function insertNewFile(folderId) { var content = " "; var FolderId = ""; var contentArray = new Array(content.length); for (var i = 0; i < contentArray.length; i++) { contentArray[i] = content.charCodeAt(i); } var byteArray = new Uint8Array(contentArray); var blob = new Blob([byteArray], {type: 'text/plain'}); insertFile(blob, fileInserted, folderId); } function fileInserted(d) { setPercent("100"); var FI = FolderId; if(FI !== myRootFolderId){ insertFileIntoFolder(FI, d.id); removeFileFromFolder(d.parents[0].id,d.id); } openFile(d.id); } function insertFileIntoFolder(folderId, fileId) { var body = {'id': folderId}; var request = gapi.client.drive.parents.insert({ 'fileId': fileId, 'resource': body }); request.execute(function(resp) { }); } function removeFileFromFolder(folderId, fileId) { var request = gapi.client.drive.parents.delete({ 'parentId': folderId, 'fileId': fileId }); request.execute(function(resp) { }); } function insertFile(fileData, callback, folderId) { setPercent("90"); 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': "untitled.txt", '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) { }; } request.execute(callback); } }