我可以使用闪存验证文件的大小并且仍然可以正常上传吗?

时间:2012-08-20 18:07:43

标签: javascript flash file-upload

想象一下,您有一个允许文件上传的表单。文件大小限制为X MB。当我们想要验证文件的大小时,我们遇到了Internet Explorer及其安全功能的问题。

我们认为Flash可能是一个解决方案,我们希望使用它来检查文件的大小,如果它通过我们的验证,则允许它与表单的其余部分一起提交。问题是,所有使用Flash执行文件验证的代码片段都使用Flash发布文件上传。我希望能够立刻发布整个表格,因为我的目标取决于一次收到的所有参数。

我的一位同事说上述情况应该是可能的,但我认为不是。是否还有其他选择,或仅使用完全Flash创建/处理帖子?

1 个答案:

答案 0 :(得分:1)

有可能。我最近制作了一个闪存文件。基本上它检查一个加载的swf的帧率,文件大小,actionscript版本和一堆其他东西,然后通过外部接口输出到javascript。

然而,对于许多步骤和异步调用,它确实感到有些苛刻。

当然首先你必须创建将检查文件的flash文件。我没有我自己做的那个,我真的应该在床上:)你的解决方案也会有很大不同但如果你想我可以明天发布。(或者今天晚些时候真的)

要创建闪存,您需要ExternalInterface。可以添加回调,以便您可以通过javascript调用flash中的函数。 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/external/ExternalInterface.html

然后将Flash文件嵌入页面的某个位置。如果我没记错的话,它不能在隐藏的div中。

在swf可以调用文件大小的页面上创建一个javascript函数。

如果要检查文件大小,请在swf内部调用相关函数(使用文件URL)。

swf中的函数应加载文件,然后才能将文件大小输出到javascript函数。