我想使用Google API在网站上填写表单,用户在其中填写“姓名”,“电子邮件”和要上传的文件。我希望将文件上传到正在运行的Google云端硬盘中(正在运行)(遵循YT教程),但是我需要从表单中创建一个名为“名称” +“电子邮件”或名为“名称”的新文件夹,然后创建一个文件在此文件夹中,其内容为“电子邮件”
我尝试过此操作,但是我从未在.gs中做任何事情,所以我不知道如何从.html传递名称
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
class MyFigureClass(QOpenGLWidget):
def __init__(self, parent):
super().__init__(parent)
fmt = QSurfaceFormat() # -╷
fmt.setSamples(8) # > anti-aliasing
self.setFormat(fmt) # -╵
[...]
def paintEvent(self, event):
qp = QPainter()
qp.begin(self)
qp.setRenderHint(QPainter.Antialiasing)
[...]
qp.end()
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<title>Upload Files</title>
</head>
<body>
<h1>Nezávazná poptávka!</h1>
<form>
<input type="text" class="box" name="name" placeholder="Celé jméno*">
<br>
<br>
<input type="text" class="box" name="mail" placeholder="E-mail*">
<br>
<br>
<input type="file" name="myFile" mulitple>
<br>
<br>
<input type="button" id="submitBtn" value="Nahrát soubor">
<label id="resp"></label>
</form>
<script>
document.getElementById('submitBtn').addEventListener('click',
function(e){
google.script.run.withSuccessHandler(onSuccess).uploadFiles(this.parentNode)
})
function onSuccess(data){
document.getElementById('resp').innerHTML = "File Uploaded to the path " +data;
}
</script>
</body>
</html>
答案 0 :(得分:1)
您可以保持自己的index.html
页不变,并通过对您进行一些小的修改code.gs
来完成任务:
function uploadFiles(data){
var file = data.myFile;
var name = data.name;
var mail = data.mail;
var folder = DriveApp.getFolderById('<your-folder-id>');
folder.createFolder(name + " + " + mail);
var createFile = folder.createFile(file);
return createFile.getUrl();
}
或者,如果要将文件上传到新创建的文件夹,则可以通过替换最后三行来实现:
folder.createFolder(name + " + " + mail);
var createFile = folder.createFile(file);
return createFile.getUrl();
具有:
var folderID = folder.createFolder(name + " + " + mail).getId();
var createFile = DriveApp.getFolderById(folderID).createFile(file);
return createFile.getUrl();