Загрузка файла HTML-формы на Google Диск и сохранение URL-адреса в листе Google.Html

Программисты Html
Ответить
Anonymous
 Загрузка файла HTML-формы на Google Диск и сохранение URL-адреса в листе Google.

Сообщение Anonymous »

Я новичок в мире сценариев Google и нашел несколько отличных руководств о том, как:
i загрузить файл на Google Диск с помощью HTML-формы
ii добавить новые строки в лист Google.

По сути, я пытаюсь написать базовую HTML-форму, которая собирает несколько текстовых полей и вложенный файл, где вложенный файл загружается на мой диск Google, а URL-адрес вместе с другим текстом формы поля добавляются в Google Sheet.

Вот HTML-форма, с которой я работаю (на основе найденного руководства):

Код: Выделить всё





form { margin: 40px auto; }
input { display:inline-block; margin: 20px; }




// The function will be called after the form is submitted
function uploadFile() {
document.getElementById('uploadFile').value = "Uploading File..";
google.script.run
.withSuccessHandler(fileUploaded)
.uploadFiles(document.getElementById("labnol"));
return false;
}

// This function will be called after the Google Script has executed
function fileUploaded(status) {
document.getElementById('labnol').style.display = 'none';
document.getElementById('output').innerHTML = status;
}




















А вот скрипт Google (опять же, основанный на полезном руководстве в блоге)

Код: Выделить всё

/* The script is deployed as a web app and renders the form */
function doGet(e) {
return HtmlService.createHtmlOutputFromFile('form.html')
.setSandboxMode(HtmlService.SandboxMode.NATIVE);
// This is important as file upload fail in IFRAME Sandbox mode.
}

/* This function will process the submitted form */
function uploadFiles(form) {

try {

/* Name of the Drive folder where the files should be saved */
var dropbox = "Test Form Submissions";
var folder, folders = DriveApp.getFoldersByName(dropbox);

/* Find the folder, create if the folder does not exist */
if (folders.hasNext()) {
folder = folders.next();
} else {
folder = DriveApp.createFolder(dropbox);
}

/* Get the file uploaded though the form as a blob */
var blob = form.myFile;
var file = folder.createFile(blob);

//Allocate variables for submissions in sheet
var namerecord = form.myName;
var emailrecord = form.myEmail;

/* Set the file description as the name of the uploader */
file.setDescription("Uploaded by " + form.myName);

/* Return the download URL of the file once its on Google Drive */
return "File uploaded successfully " + file.getUrl();

var uploadURL = file.getUrl();

//

} catch (error) {

/* If there's an error, show the error message */
return error.toString();
}

//Open spreadsheet based on URL
var googsheet = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/17fuu1vUuxgCgs1TpSGpWDNxMHX3AEFscmjX156HQ5_U/edit?usp=sharing');
Logger.log(googsheet.getName());

var sheet = googsheet.getSheets()[0];
sheet.appendRow(["James", "jim", "abc"]);

}
Моя интуиция заключалась в том, чтобы просто вставить несколько строк кода, чтобы добавить данные формы на указанный лист, но это не работает, и я, должно быть, делаю что-то неправильно: S

Любой совет будет очень признателен невежественному бизнес-аналитику, новичку в веб-программировании:/

Спасибо

Подробнее здесь: https://stackoverflow.com/questions/377 ... ogle-sheet
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»