繁体   English   中英

HTTP POST和Google Apps脚本文件上传

[英]HTTP POST and Google Apps Script file upload

原谅这个问题可能存在两面性,但经过几个小时的搜索无济于事,我选择询问以下社区:

是否有任何方法,使用以下表格与HTML和Javascript(带有POST或GET请求)我可能能够拥有一个用户,从普通的HTML页面,能够提交并上传文件到Google云端硬盘通过将“form action =”指向Google Script?

我已经能够仅使用指向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> 

Google Apps脚本

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

我尝试使用代码进行以下变化,以尝试通过此方法执行上载:

  • enctype="multipart/form-data"添加了enctype="multipart/form-data"以查看是否存在问题。
  • 尝试使用“GET”请求。

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

这有什么希望吗? 我一直在试图搜集我从这里能,以及关于什么听起来像相关的方法是这样的错误以下两个问题在这里 ,并在这里与后者似乎最接近现在面临什么我。

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

我认为这仍然是“破碎”。 我不知道是否打算如此。 经过一番详尽的试验和错误后,我得出结论,虽然可以让doPost执行,但你永远不会得到一个可用的响应(我想不出你不关心上传是否成功的情况)或不)。 基本上,您遇到了在htmlService示例中为您解决的跨域问题。 'get'永远不会用于上传。

由于近年来的变化,您可以使用DriveApp指定contentType并将其保存到您的云中:

  var contentType = 'image/jpeg';
  var img = e.imageFile;
  var img = img.getAs(contentType);
  var destination = DriveApp.getFolderById(destination_id);
  destination.createFile(img);

还要确保你的html工作正常。 您尚未指定任何提交输入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM