Javascript 使用ajax和Google应用程序脚本将文件上载到Google drive会创建空文件
我有一个HTML表单,试图上传一个文件并将其保存在Google Drive中。文件的实际数据在某个地方丢失了,我不知道在哪里。我相信是关于文件的编码。文件名和文件类型移动得很好 当前的最终结果是一个文件以正确的名称和文件类型保存在Google Drive中,大小为8字节 HTML 谷歌应用程序脚本Javascript 使用ajax和Google应用程序脚本将文件上载到Google drive会创建空文件,javascript,jquery,ajax,file-upload,google-apps-script,Javascript,Jquery,Ajax,File Upload,Google Apps Script,我有一个HTML表单,试图上传一个文件并将其保存在Google Drive中。文件的实际数据在某个地方丢失了,我不知道在哪里。我相信是关于文件的编码。文件名和文件类型移动得很好 当前的最终结果是一个文件以正确的名称和文件类型保存在Google Drive中,大小为8字节 HTML 谷歌应用程序脚本 function doPost(e) { try { var dropbox = "File Folder"; var folder, folders = DriveApp.getF
function doPost(e) {
try {
var dropbox = "File Folder";
var folder, folders = DriveApp.getFoldersByName(dropbox);
var fileToProcess = e.parameters.file;
var fileToProcessName = e.parameters.name;
var fileToProcessType = e.parameters.type;
if (folders.hasNext()) {
folder = folders.next();
} else {
folder = DriveApp.createFolder(dropbox);
}
var blob = Utilities.newBlob(fileToProcess,fileToProcessType,fileToProcessName);
var newFile = folder.createFile(blob);
} catch (f) {
return ContentService // return json success results
.createTextOutput(
JSON.stringify({"result":"file upload failed",
"data": JSON.stringify(f) }))
.setMimeType(ContentService.MimeType.JSON);
}
}
创建文件后,请尝试.Add newFile.saveAndClose()代码。
function UploadFile() {
var formData = new FormData();
var fileInput = document.getElementById('file');
var file = fileInput.files[0];
formData.append('file', file);
formData.append('type', file.type);
formData.append('name', file.name);
$.ajax({
url: 'GAS SCRIPT URL',
type: 'POST',
data: formData,
processData: false, // tell jQuery not to process the data
contentType: false, // tell jQuery not to set contentType
success: function(results) {
console.log(JSON.stringify(results));
},
error: function(results) {
console.log(JSON.stringify(results));
}
});
}
function doPost(e) {
try {
var dropbox = "File Folder";
var folder, folders = DriveApp.getFoldersByName(dropbox);
var fileToProcess = e.parameters.file;
var fileToProcessName = e.parameters.name;
var fileToProcessType = e.parameters.type;
if (folders.hasNext()) {
folder = folders.next();
} else {
folder = DriveApp.createFolder(dropbox);
}
var blob = Utilities.newBlob(fileToProcess,fileToProcessType,fileToProcessName);
var newFile = folder.createFile(blob);
} catch (f) {
return ContentService // return json success results
.createTextOutput(
JSON.stringify({"result":"file upload failed",
"data": JSON.stringify(f) }))
.setMimeType(ContentService.MimeType.JSON);
}
}