Google Apps 脚本 HTML 服务 ( Caja ) 与 HTML5 API 不兼容,包括 Files API。因此,我无法从输入对象调用 Files 属性。
由于我在互联网上找到的所有解决方案都涉及 HTML5,因此非常感谢能够规避此问题并允许我处理每个单独上传的文件的方法。
Google Apps 脚本 HTML 服务 ( Caja ) 与 HTML5 API 不兼容,包括 Files API。因此,我无法从输入对象调用 Files 属性。
由于我在互联网上找到的所有解决方案都涉及 HTML5,因此非常感谢能够规避此问题并允许我处理每个单独上传的文件的方法。
事实上有一种方法可以做到这一点,虽然这个 API 太老了,它已经从更现代的浏览器中删除了。在适用时使用 FileReader。
http://igstan.ro/posts/2009-01-11-ajax-file-upload-with-pure-javascript.html
使用这个新的 API,每个输入元素(不仅是文件输入元素)都被赋予了一个名为 files 的属性。这个属性是我们读取本地文件的入口。当 input 元素的 type 属性不是 file 时, files 属性的值为 null。另一方面,对于 type 属性为 file 的输入元素,files 属性是 FileList 类型,类似于由 document.getElementsByTagName() 返回的 NodeList 对象。您可以像访问数组一样访问它,并具有以下属性和方法:
length item(index)
files 属性中的每个元素都是一个 File 元素,它公开以下属性和方法:
fileName fileSize getAsBinary() getAsText(encoding) getAsDataURL()
上面这两个列表是关于读取本地文件的 API 的所有信息。没有什么更多的了。没有安全限制,没有特殊配置。