首页 > 解决方案 > 无法打开通过 Google 应用脚本上传的文件

问题描述

作为标题,我目前正在开发一个上传页面,该页面使用户能够将文件(jpg 和 Doc)上传到 Google Drive 上的文件夹中。但是,问题似乎是虽然文件上传成功,但我无法打开它们,而且文件的大小与原始文件相比更大。以下是我目前拥有的,如果这可以进一步,请告诉我。

function doGet(e) {
return HtmlService.createHtmlOutputFromFile('index.html');
}

function uploadFiles(form) {  
try {
  var dropbox = "1 作文上傳";
  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);    
  file.setDescription("上傳者: " + form.Name + " 電話: "+ form.Phone + " 信箱: " + form.Email);
 
  return "<h2>雲端上傳系統</h2><input type='submit' value='上傳完成,可關閉視窗' onclick='window.close();'></form></div>";
} catch (error) {    
  return error.toString();
}
}

html:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
<title>雲端上傳系統</title>
  </head>
<body>
<div id="myForm">  
  <form method="post">
    <h2>雲端上傳系統</h2>
      <input type="text" name="Name" placeholder="請輸入姓名&quot;><br/>
      <input type="text" name="Phone" placeholder="請輸入你的電話&quot;><br/>
      <input type="text" name="Email" placeholder="請輸入你的信箱&quot;><br/>
 <input type="file" name="myFile">
      <input type="submit" value="上傳檔案"
           onclick="this.value='檔案上傳中……';
                    google.script.run.withSuccessHandler(fileUploaded)
                    .uploadFiles(this.parentNode);
                    return false;">
  </form>
</div>
<div id="output"></div>
<script>
    function fileUploaded(status) {
        document.getElementById('myForm').style.display = 'none';
        document.getElementById('output').innerHTML = status;
    }
</script>
</body>
</html>

标签: javascripthtmlgoogle-apps-scriptfile-uploadgoogle-drive-api

解决方案


我遇到了同样的问题,新版本的 GAS 在创建文件时出现了错误var file = folder.createFile(blob);

尝试禁用 GAS V8 并使用旧版。


推荐阅读