Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
动作脚本FileReference对象是否可以发送到Javascript并转换为文件对象?_Javascript_Actionscript 3_Filereference_File Io - Fatal编程技术网

动作脚本FileReference对象是否可以发送到Javascript并转换为文件对象?

动作脚本FileReference对象是否可以发送到Javascript并转换为文件对象?,javascript,actionscript-3,filereference,file-io,Javascript,Actionscript 3,Filereference,File Io,在动作脚本中,调用FileReference.browse() 我想将所选文件发送到Javascript并将其转换为文件对象,就像我按下的浏览按钮一样,我认为没有任何方法创建文件对象。例如,尝试以下方法: var f = new File; 我得到一个异常“无法将WrappedNative转换为函数”。如果您查看,则没有描述任何构造函数。此外,大多数属性都是只读的。我认为这意味着只有浏览器才能创建文件对象 请记住,如果您可以通过指定文件的路径来创建文件对象,那么在未经用户同意的情况下上载文件将

在动作脚本中,调用FileReference.browse()


我想将所选文件发送到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来说,它开始变得巨大。