可以将Action Script File Reference对象发送到Javascript并转换为File对象吗?

时间:2010-07-13 03:42:20

标签: javascript actionscript-3 filereference file-io

在Action Script中,调用FileReference.browse()。

我想将所选文件发送到Javascript并将其转换为File对象,就像我按Browse的{​​{1}}按钮并获得File对象一样。

我需要能够显示如here所示的图片缩略图。

也许不是传递整个对象而是可以只从对象发送缩略图所需的信息?

谢谢!

2 个答案:

答案 0 :(得分:1)

我认为没有办法创建File对象。例如,试试这个:

var f = new File;

我收到异常“无法将WrappedNative转换为函数。”如果你查看the docs for File,则没有描述构造函数。此外,大多数属性是只读的。我会解释这意味着只有浏览器才能创建一个File对象。

请记住,如果您可以通过指定文件的路径来创建File对象,则可以在未经用户同意的情况下上传文件。那将是一个严重的安全漏洞。

您可能会发现仅使用Flash或仅使用HTML5更实用。

答案 1 :(得分:1)

对于试图这样做的人。可以做的是:

  1. 将fileReference数据byterray转换为Base64并将其放入字符串
  2. 使用ExternalInterface
  3. 将此字符串发送到javascript

    我在上下文中使用此模式,我想要概述二进制文件内容。即使是使用这种方法也可以发送大图像。然后可以使用具有相应MIME的数据URI在javascript中访问该文件:

    data:image / png; base64,[data]或data:octet / stream,[data]

    由于我发布了第一篇文章后差不多2年半的时间,我们现在可以在所有流行的浏览器中完成。