![](/img/trans.png)
[英]How can i get my all file that i am the owner from my google drive using google app script
[英]Google App Script GAS - How can I get an <input type=“file”> from a form
我正在做一個小項目,我在網站上有一個html表單,我想使用google app腳本(GAS)獲取所有表單輸入數據並將其發送到電子郵件地址。
到目前為止,我的代碼運行良好。 但是,我在從html頁面上獲取文件時遇到問題
這是我在GAS上使用的代碼
function doPost(request) {
var fname = request.parameters.txtName, femail = request.parameters.txtEmail, fnote = request.parameters.txtArea, ffile = request.parameters.fFileAttach;
MailApp.sendEmail({
to: "me@EmailAddress.com",
subject: "Message from webform by: " + femail,
htmlBody: "This message was sent by the user " + fname + "<br/>" +
"User email address: " + femail + "<br />" +
"Email message:<br/>" + fnote,
replyTo: femail,
attachments: [ffile]
});
}
這是我的html表單代碼:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<form action="myGAS_Link" id="cc-form" method="post">
<div class="fTop">
<span>Name:* </span><input name="txtName" type="text" placeholder="Your Name" id="fname" required="" autofocus>
<span>E-Mail:* </span><input name="txtEmail" type="email" placeholder="Your e-Mail" id="femail" required="">
</div>
<!--------------------------->
<div class="fSet1">
<span>Notes:</span><br/>
<textarea name="txtArea" id="fTextArea" rows="8"></textarea>
</div>
<!--------------------------->
<div class="fSub">
<span>Upload your File:* </span><input name="fFileAttach" id="fFileAttach" type="file" required>
<input id="submit" type="submit">
</div>
</form>
</body>
</html>
這個修改怎么樣?
FileReader()
,檢索base64編碼的文件,文件名和mimetype。 type="hidden"
input
添加到#cc-form
作為文本數據。 replace(/^.*,/, '')
用於刪除編碼數據的標頭。 match(/^.*(?=;)/)[0]
用於檢索上傳文件的match(/^.*(?=;)/)[0]
。 request.parameters.data
, request.parameters.filename
和request.parameters.mimetype
檢索數據,文件名和mimetype。 Utilities.base64Decode()
解碼數據。 Utilities.newBlob()
創建blob。 function doPost(request) {
var data = Utilities.base64Decode(request.parameters.data); // Added
var ffile = Utilities.newBlob(data, request.parameters.mimetype, request.parameters.filename); // Added
var fname = request.parameters.txtName, femail = request.parameters.txtEmail, fnote = request.parameters.txtArea; // Modified
MailApp.sendEmail({
to: "me@EmailAddress.com",
subject: "Message from webform by: " + femail,
htmlBody: "This message was sent by the user " + fname + "<br/>" +
"User email address: " + femail + "<br />" +
"Email message:<br/>" + fnote,
replyTo: femail,
attachments: [ffile]
});
return ContentService.createTextOutput("ok"); // Added
}
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.js"></script> <!-- Added -->
</head>
<body>
<form action="myGAS_Link" id="cc-form" method="post">
<div class="fTop">
<span>Name:* </span><input name="txtName" type="text" placeholder="Your Name" id="fname" required="" autofocus>
<span>E-Mail:* </span><input name="txtEmail" type="email" placeholder="Your e-Mail" id="femail" required="">
</div>
<!--------------------------->
<div class="fSet1">
<span>Notes:</span><br/>
<textarea name="txtArea" id="fTextArea" rows="8"></textarea>
</div>
<!--------------------------->
<div id="data"></div> <!-- Added -->
<div class="fSub">
<span>Upload your File:* </span><input name="fFileAttach" id="fFileAttach" type="file" required>
<input id="submit" type="submit">
</div>
</form>
</body>
<!-- Added -->
<script>
$('#fFileAttach').on("change", function() {
var file = this.files[0];
var fr = new FileReader();
fr.fileName = file.name;
fr.onload = function(e) {
html = '<input type="hidden" name="data" value="'+e.target.result.replace(/^.*,/, '')+'" >';
html += '<input type="hidden" name="filename" value="'+e.target.fileName+'" >';
html += '<input type="hidden" name="mimetype" value="' + e.target.result.match(/^.*(?=;)/)[0] + '" >';
$("#data").empty().append(html); // Modified
}
fr.readAsDataURL(file);
});
</script>
</html>
var file = this.files[0];
表示所選的第一個文件。 如果有一些文件,則為files[1], files[2] ...
如果我誤解了您的問題,對不起。
<div id="data"></div>
$("#cc-form").append(html);
到$("#data").empty().append(html);
通過這些修改,上一次選擇的文件被上傳。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.