google-apps-script - 我想将 img 从本地上传到驱动器并将 url 保存在工作表中
问题描述
我想从本地上传 img 到驱动器并将 url 保存在工作表中我使用此代码将 img 上传到驱动器但现在我想获取 url 并保存在 spadsheet
这个应用程序脚本的 gs 代码可以帮助任何人获取 url 并停止应用程序脚本完整页面我将从本地 html 运行它请帮助我
function doGet(e) {
return message("Error: no parameters");
}
function doPost(e) {
var template = HtmlService
.createTemplateFromFile('ModalForm');
var htmlOutput = template.evaluate()
.setSandboxMode(HtmlService.SandboxMode.NATIVE)
.setTitle('done ');
if (!e.parameters.filename || !e.parameters.file || !e.parameters.imageformat) {
return message("Error: Bad parameters");
} else {
var imgf = e.parameters.imageformat[0].toUpperCase();
var mime =
(imgf == 'BMP') ? MimeType.BMP
: (imgf == 'GIF') ? MimeType.GIF
: (imgf == 'JPEG') ? MimeType.JPEG
: (imgf == 'PNG') ? MimeType.PNG
: (imgf == 'SVG') ? MimeType.SVG
: false;
if (mime) {
var data = Utilities.base64Decode(e.parameters.file, Utilities.Charset.UTF_8);
var blob = Utilities.newBlob(data, mime, e.parameters.filename);
var as= DriveApp.getFolderById('1myWqX4qCtsFYOPvTl9vT7Xa1inzAG6Rc').createFile(blob);
Logger.log(as.getUrl());
}
else {
return message("Error: Bad image format");
}
}
}
...
解决方案
解决方案
您可以参考这个答案来构建一个上传“PNG”的工作解决方案。根据需要更改mimetype
。
建议修改
// Code.gs
function doGet(e) {
return message("Error: no parameters");
}
function doPost(e) {
if (!e.parameters.filename || !e.parameters.file) {
return message("Error: Bad parameters");
} else {
var data = Utilities.base64Decode(e.parameters.file, Utilities.Charset.UTF_8);
var blob = Utilities.newBlob(data, MimeType.PNG, e.parameters.filename);
var file = DriveApp.getFolderById('1myWqX4qCtsFYOPvTl9vT7Xa1inzAG6Rc').createFile(blob);
var url = file.getUrl();
var sheet = SpreadsheetApp.openById("your-spreadsheet-id").getSheetByName("sheet-name");
sheet.appendRow([url]);
return message("completed");
}
}
function message(msg) {
return ContentService.createTextOutput(JSON.stringify({result: msg})).setMimeType(ContentService.MimeType.JSON);
}
参考
推荐阅读
- python - 装饰器可以访问python中的变量类型声明吗?
- swift - 如何使用 SceneKit 进行寻路(3D 障碍物)
- java - 如何在 Springt Boot 中创建一个调用包含构造函数注入的服务的测试?
- javascript - 使用 Python 下载 JavaScript 加载的音频
- google-cloud-firestore - 如何使用 Google Cloud Functions 将这个大型 JSON 导入 Firestore 数据库?
- python - 如何返回对象序列的最大值,其中每个对象具有不同值的相同字段?
- reactjs - React.js 中的匹配总是不返回任何内容
- node.js - 将多个视频合并为一个 .mp4
- python-3.x - For 循环/错误:“NoneType”类型的对象没有 len()
- android - Android中加载事件中的异常行为