我希望你能帮助我,我有一个问题。 我需要一个GAS表单,可以使用原始名称将文件上传到谷歌驱动器。但是我不能干活。我不知道这是错的,但是文件没有扩展,名称是Undefined .. 这是我的简单代码; 谢谢大家。
function doGet(p) {
var app = UiApp.createApplication();
var flow = app.createFlowPanel().setId('flow');
var gridfile = app.createGrid(5,3);
var flabel0 = app.createLabel('Upload the file');
var flabel1 = app.createLabel('Select file: ');
var thefile = app.createFileUpload().setName('thefile').setId('thefile');
var handlerxx = app.createServerHandler('uploadfile').addCallbackElement(flow);
thefile.addChangeHandler(handlerxx);
gridfile.setWidget(0, 0, flabel0)
.setWidget(2, 0, flabel1)
.setWidget(2, 1, thefile);
flow.add(gridfile);
app.add(flow);
return app;
}
function uploadfile(e) {
var app = UiApp.getActiveApplication();
var fileBlob = Utilities.newBlob(e.parameter.thefile,"application/zip",e.parameter.thefile);
var doc = DocsList.createFile(fileBlob);
app.getElementById('flow').add(app.createLabel('File Uploaded successfully'));
return app;
}
答案 0 :(得分:1)
您只能以doGet / doPost
表单结构上传文件。
我没有详细解释,而是认为展示一个有效的例子会更容易(老实说它也更简单......)
所以就是这样,请注意我必须添加一个提交按钮来触发表单提交。
顺便说一句,我添加了一个客户端处理程序显示的'loading'
标签,因为在上传过程中没有任何反应,用户可能会担心!!
我注释了关于zip类型和fileName的行,因为上传的文件会自动保留名称和类型。
function doGet() {
var app = UiApp.createApplication();
var form = app.createFormPanel();
var flow = app.createFlowPanel().setId('flow');
form.add(flow);
var gridfile = app.createGrid(5,3);
var flabel1 = app.createLabel('Select file: ');
var lab = app.createLabel('LOADING').setStyleAttributes({'color':'red'}).setVisible(false).setId('lab');
var cliHandler = app.createClientHandler().forTargets(lab).setVisible(true);
var thefile = app.createFileUpload().setName('thefile').setId('thefile');
var button = app.createSubmitButton('Upload the file').addClickHandler(cliHandler);
gridfile.setWidget(2, 0, flabel1)
.setWidget(2, 1, thefile)
.setWidget(2, 2, button);
flow.add(gridfile).add(lab);
app.add(form);
return app;
}
function doPost(e) {
var app = UiApp.getActiveApplication();
Logger.log('doPost');
// var fileBlob = Utilities.newBlob(e.parameter.thefile,"application/zip",e.parameter.thefile);
var doc = DocsList.createFile(e.parameter.thefile);
app.getElementById('lab').setVisible(false);
app.add(app.createLabel('File Uploaded successfully'));
return app;
}