「提出」という名前のフォルダがあるGoogleドライブがあります。 私は「フォーム」を作成し、エンドユーザーが(フォームから)アップロードしたものを投稿フォルダに保存するGoogle Appsスクリプトも用意しています。ここで Google Apps Scriptフォームを既存のスプレッドシートにインポートする
は、スクリプトの例(server.gs)です:function doGet(e) {
return HtmlService.createHtmlOutputFromFile('form.html');
}
function uploadFiles(form) {
try {
var dropbox = "Submissions";
var folder, folders = DriveApp.getFoldersByName(dropbox);
if (folders.hasNext()) {
folder = folders.next();
} else {
folder = DriveApp.createFolder(submissions);
}
var blob = form.myFile;
var file = folder.createFile(blob);
file.setDescription("Uploaded by " + form.myName);
return "File uploaded successfully " + file.getUrl();
} catch (error) {
return error.toString();
}
}
そしてForm.htmlは以下のとおりである:これは何
<form id="myForm">
<label>Name:</label>
<input type="text" name="myName">
<label>Email:</label>
<input type="text" name="myEmail">
<label>Demo Title (e.g "Artist - Demo Name"):</label>
<input type="text" name="myTitle">
<label>Choose Demo File:</label>
<input type="file" name="myFile">
<input type="submit" value="Submit"
onclick="google.script.run
.uploadFiles(this.parentNode);
return false;">
が作成され"名前"、 "電子メール"、 "デモタイトル"のテキストフィールドと "送信"ボタンがあるフォーム。ユーザーはファイルを添付し、このフォームを使用してファイルをアップロードします。
今、ファイルのアップロードは正常に動作します。誰でもファイルをアップロードすることができ、Googleドライブのフォルダ(投稿)に正しく表示されます...しかし、入力されなかったかのように他の詳細は単に消えます。私は、その詳細を既存のスプレッドシートに、タイムスタンプを付けて表示することをお勧めします。
誰でも手伝ってもらえますか?
返信ありがとうございます。私のコーディングスキルは基本的には初心者レベルだと言わざるを得ないので、私があなたの答えをどうやっているのかは分かりにくいです。 この新しいコードを 'server.gs'スクリプトまたは 'form.html'部分に入れますか? 私はあなたのコードを変更する必要があるように見えますが、正確に私がどのように超えているのですか:( – TJV
コード全体を変更する必要はなく、 'SpreadSheetApp()'クラスを統合するだけです。 –
フォームのアップロード部分をそのまま実行したい(オーディオファイルがフォルダに入る)が、私は他の詳細(名前、電子メールなど)を移動したい "SpreadSheetApp()"をコードに追加するのは簡単ではないと私は考えています – TJV