google-apps-script - 上传文件按钮
问题描述
我想在我的谷歌电子表格中有一个简单的按钮,它将所选文件上传到谷歌驱动器上的特定文件夹。无需申请谷歌表格。只需一个上传按钮。有没有人有这个任务的一些脚本代码示例?
解决方案
我了解到您希望电子表格中的一个按钮将文件从您的 PC 上传到您的 Google Drive。第一步是创建一个上传脚本。您可以使用 Google Drive API 文档中的示例:
function insertFile(fileData, callback) {
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': fileData.fileName,
'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': 'your path file',
'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); }}
然后,您必须在工作表中创建按钮。为此,请转到“插入”>“绘图”(或图像,如果有的话)并绘制您的自定义按钮。完成后,右键单击按钮并选择“分配脚本”,然后写下您保存的脚本的名称。
推荐阅读
- c# - Why undo Drawline() in my opinion is not work?
- kernel - Freebsd 11.1 - 我添加了自己的 sysctl - 但它没有被 sysctl -a 命令列出,手动调用时没有显示任何值,我无法更改它的值
- python - re.findall 生成意外的额外空格
- php - 显示特定 WooCommerce 类别的列表
- typescript - 离子显示网页
- c++ - Best way to keep a collection of timers (object vs pointer)
- mongodb - Mongoose 10 毫秒查询本地主机上的单个小文档?
- javascript - Angular 6 CLI 向 app.modules.ts 添加新组件会导致白屏
- service - Can Ansible service-module be used for non-root daemons?
- javascript - 如何将 JavaScript 类转换为工厂函数