动作脚本FileReference对象是否可以发送到Javascript并转换为文件对象?
在动作脚本中,调用FileReference.browse()动作脚本FileReference对象是否可以发送到Javascript并转换为文件对象?,javascript,actionscript-3,filereference,file-io,Javascript,Actionscript 3,Filereference,File Io,在动作脚本中,调用FileReference.browse() 我想将所选文件发送到Javascript并将其转换为文件对象,就像我按下的浏览按钮一样,我认为没有任何方法创建文件对象。例如,尝试以下方法: var f = new File; 我得到一个异常“无法将WrappedNative转换为函数”。如果您查看,则没有描述任何构造函数。此外,大多数属性都是只读的。我认为这意味着只有浏览器才能创建文件对象 请记住,如果您可以通过指定文件的路径来创建文件对象,那么在未经用户同意的情况下上载文件将
我想将所选文件发送到Javascript并将其转换为文件对象,就像我按下
的浏览按钮一样,我认为没有任何方法创建文件对象。例如,尝试以下方法:
var f = new File;
我得到一个异常“无法将WrappedNative转换为函数”。如果您查看,则没有描述任何构造函数。此外,大多数属性都是只读的。我认为这意味着只有浏览器才能创建文件对象
请记住,如果您可以通过指定文件的路径来创建文件对象,那么在未经用户同意的情况下上载文件将很容易。那将是一个严重的安全漏洞
您可能会发现仅使用Flash或仅使用HTML5更为实用。对于尝试这样做的人。可以做的是:
将fileReference数据byterray转换为Base64并将其放入字符串中
使用ExternalInterface将此字符串发送到javascript
我在希望对二进制文件内容有一个概述的上下文中使用此模式。使用这种方法甚至可以发送大图像。然后,可以使用具有适当MIME的数据URI在javascript中访问该文件:
数据:图像/png;base64,[数据]或数据:八位字节/流,[数据]
由于我在第一篇文章发表将近2年半之后才发表文章,我们现在可以在所有流行的浏览器中发布。好的,非常感谢您的回复!这就是我正在做的,在Chrome上工作,但是Firefox41在文件大于4Mbs时崩溃得很厉害。Firefox没有规则。是的,4MB对于URI来说,它开始变得巨大。