javascript - 无法打开通过 Google 应用脚本上传的文件
问题描述
作为标题,我目前正在开发一个上传页面,该页面使用户能够将文件(jpg 和 Doc)上传到 Google Drive 上的文件夹中。但是,问题似乎是虽然文件上传成功,但我无法打开它们,而且文件的大小与原始文件相比更大。以下是我目前拥有的,如果这可以进一步,请告诉我。
function doGet(e) {
return HtmlService.createHtmlOutputFromFile('index.html');
}
function uploadFiles(form) {
try {
var dropbox = "1 作文上傳";
var folder, folders = DriveApp.getFoldersByName(dropbox);
if (folders.hasNext()) {
folder = folders.next();
} else {
folder = DriveApp.createFolder(dropbox);
}
var blob = form.myFile;
var file = folder.createFile(blob);
file.setDescription("上傳者: " + form.Name + " 電話: "+ form.Phone + " 信箱: " + form.Email);
return "<h2>雲端上傳系統</h2><input type='submit' value='上傳完成,可關閉視窗' onclick='window.close();'></form></div>";
} catch (error) {
return error.toString();
}
}
html:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>雲端上傳系統</title>
</head>
<body>
<div id="myForm">
<form method="post">
<h2>雲端上傳系統</h2>
<input type="text" name="Name" placeholder="請輸入姓名"><br/>
<input type="text" name="Phone" placeholder="請輸入你的電話"><br/>
<input type="text" name="Email" placeholder="請輸入你的信箱"><br/>
<input type="file" name="myFile">
<input type="submit" value="上傳檔案"
onclick="this.value='檔案上傳中……';
google.script.run.withSuccessHandler(fileUploaded)
.uploadFiles(this.parentNode);
return false;">
</form>
</div>
<div id="output"></div>
<script>
function fileUploaded(status) {
document.getElementById('myForm').style.display = 'none';
document.getElementById('output').innerHTML = status;
}
</script>
</body>
</html>
解决方案
我遇到了同样的问题,新版本的 GAS 在创建文件时出现了错误var file = folder.createFile(blob);
尝试禁用 GAS V8 并使用旧版。
推荐阅读
- c# - GTK Sharp 同步上下文似乎不存在,默认情况下会中断 async/await
- python - 给定一个数据集,查找它是否是批处理的
- javascript - CRUD - 我无法使用 express 和 mongodb 插入数据
- vue.js - 无法读取未定义的属性“_wrapper”-使用 vue 多选
- visualization - 来自gensim的pyLDAvis可视化未在google colab中显示结果
- delphi - 从 Delphi 10.3 中的 TWebBrowser OnNavigateError 中提取 StatusCode
- php - 从 PHP 显示 PNG 文件
- android - React Native 从您的 react-native 应用程序内部更改设备设置
- python - 具有非常量质量矩阵的非线性微分方程的解
- flutter - 当我在 Flutter 中使用提供程序包将数据从 API 加载到列表中时,它会重复调用 API,我该如何解决?