HTTP POST 和 Google Apps 脚本文件上传

2024-01-17

请原谅这个问题可能存在口是心非,但经过几个小时的搜索无果后,我选择向社区询问以下问题:

有没有什么办法,使用以下带有 HTML 和 Javascript 的表单(带有 POST 或 GET 请求),我可以让用户从普通的 HTML 页面提交文件并将其上传到 Google Drive通过将“表单操作=”定向到Google脚本?

我已经能够仅使用指向 Google 脚本的表单操作成功地将值写入 Google 电子表格,该脚本包含单个 doPost(e),然后获取 e.parameter.[input_field_name_here] 并执行计算。

我一直在尝试多种方法的组合,但这只是我所能得到的。

当前 HTML:

<form method="post" action="my_google_script_published_as_web_app_url/exec" name="quoteForm" id="quoteForm" target="hidden_iframe"> 
  <input type="file" name = "thefile">
</form> 

谷歌应用脚​​本

function doPost(e) 
   {
   var fileBlob = e.parameter.thefile;
   Logger.log(e);
   Logger.log(fileBlob);
   var doc = DocsList.createFile(fileBlob.getBlob());
   }

我尝试对代码进行以下变体,以便尝试通过此方法执行上传:

  • 添加了enctype="multipart/form-data"到表格上看看这是否是一个问题。
  • 尝试改用“GET”请求。

我能够得到的最接近的实际可用结果是“无法将数组转换为 BlobSource”的错误返回,以及“无法在字符串类型上调用 .getBlob()”的进一步结果以及“...在对象类型上”。

这还有希望吗?我一直在尝试从这里收集我能收集到的信息,以及以下两个问题,这些问题听起来像是与此类方法相关的错误here https://code.google.com/p/google-apps-script-issues/issues/detail?id=2229 and here https://code.google.com/p/google-apps-script-issues/issues/detail?id=1660后者似乎最接近我所面临的情况。

预先非常感谢您就此事提供的任何帮助。


我认为这仍然是“破碎”的。我不知道是否打算继续如此。经过一番详尽的试验和错误后,我得出的结论是,尽管可以执行 doPost,但您永远不会获得可用的响应(而且我无法想到您不关心上传是否成功的情况或不)。基本上,您会遇到跨域问题,该问题已在html服务示例 https://developers.google.com/apps-script/guides/html/communication#forms。 “get”永远不会用于上传。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTTP POST 和 Google Apps 脚本文件上传 的相关文章