Google雲端硬碟開放「匿名上傳」加強版,一次開放上傳兩個檔案(Google Apps Script應用服務指令碼)

繼之前的文章「原來Google雲端硬碟也能開放「匿名上傳」,做為學生作業、比賽稿件上傳就不用再傷腦筋了!(Google Apps Script應用服務指令碼)」後,有網友提出是否可以在一個表單中上傳兩個檔案,原本也不是很確定是否可以這樣做,經實際測試後,確認這樣也是可行的,所以將相關的修正方式公佈在此文章中,方便大家進行實做!

⓪測試上傳網址:https://goo.gl/rjzQd8


⓪開啟Script檔案,將 Script 複製到你的雲端硬碟中:https://goo.gl/PYPu3d

⓪ form.html 表單修改重點如下:設定兩個檔案名稱與檔案上傳欄位


 以下為純文字內容,並將雲端硬碟資料夾與檔案加上超連結語法,方便大家直接複製使用:

<form id="myForm">
    <h3>全國海報比賽作品上傳</h3>
    <input type="text" name="myName" placeholder="請輸入檔案1">
    <input type="file" name="myFile">
    <input type="text" name="myName1" placeholder="請輸入檔案2">
    <input type="file" name="myFile1">  
    <input type="submit" value="開始上傳檔案(檔案上限25MB)"
           onclick="this.value='檔案上傳中,請稍候!';
                    google.script.run.withSuccessHandler(fileUploaded)
                    .uploadFiles(this.parentNode);
                    return false;">
</form>
<div id="output"></div>
<script>
    function fileUploaded(status) {
        document.getElementById('myForm').style.display = 'none';
        document.getElementById('output').style.display = 'block';
        document.getElementById('output').innerHTML = status;
    }
        document.getElementById('output').style.display = 'none';
</script>
<style>
 h3 { text-align:center; }
 form, #output { width:400px; height: 300px; margin:auto; border: 1px solid #333;
    background-image: url(http://www.photovaco.com/wp-content/uploads/2011/09/free-photo-background-986-m.jpg);
background-repeat: no-repeat;
background-position: top center; }
 input { display:block; margin: 20px; width:90%; height:2em;}
  #output { padding:20px;word-wrap:break-word;  }
</style>
⓪ server.gs 程式修改重點如下:
  1. 宣告取得兩個上傳檔案的名稱與資料夾變數,並指定上傳後的名稱為使用者在文字欄位中輸入的內容
  2. 設定上傳後顯示的訊息與超連結


以下為純文字內容,並將雲端硬碟資料夾與檔案加上超連結語法,方便大家直接複製使用:

function doGet(e) {
  return HtmlService.createHtmlOutputFromFile('form.html');
}
function uploadFiles(form) {
 
  try {
   
    var dropbox = "Google Apps Script上傳Demo";
    var folder, folders = DriveApp.getFoldersByName(dropbox);
   
    if (folders.hasNext()) {
      folder = folders.next();
    } else {
      folder = DriveApp.createFolder(dropbox);
    }
   
    var blob = form.myFile;  
    var file = folder.createFile(blob);  
    var blob1 = form.myFile1;  
    var file1 = folder.createFile(blob1);
   
    file.setDescription("由 " + form.myName + " 上傳" );
    file.setName(form.myName)      
   
    file1.setDescription("由 " + form.myName1 + " 上傳" );
    file1.setName(form.myName1)
   
    return "檔案已經上傳成功囉!謝謝您!<br><br>■<a href='" + folder.getUrl() + "' target='_blank'>瀏覽雲端硬碟資料夾</a><br><br>■<a href='" + file.getUrl() + "' target='_blank'>瀏覽雲端硬碟第一個檔案<br><br>■<a href='" + file1.getUrl() + "' target='_blank'>瀏覽雲端硬碟第二個檔案";
   
  } catch (error) {
   
    return error.toString();
  }
 
}



留言