8

我正在开发 Flash 中的图像上传器。我使用 FileReference.browse 浏览图像,然后将此图像调整为 1000 x 1000 像素,如果图像很大,然后上传到服务器。我想显示图像上传进度的进度条。

我正在使用 URLLoader 发送调整大小图像的二进制数据,但 URLLoader 上的 ProgressEvent 并不能按预期的方式工作。它仅在图像完成上传后才会触发,而不是显示中间进度。FileReference 上的 ProgressEvent 可以完美地显示中间图像上传进度。

有没有办法使用 URLLoader 显示上传进度?或者

我们可以使用 FileReference 加载修改后的图像,然后调用 FileReference.upload,这样就可以显示实际的进度条。


更新 1
但我的问题是我在使用 FileReference.browse 后调整浏览图像的大小,并且我想上传调整大小的图像,而不是浏览后 FileReference 对象中的原始图片。在这种情况下如何使用 Filereference.upload?Filereference.upload 将上传原始图像而不是调整大小的图像。任何想法,如何将调整大小的图像放入 Filereference 对象,然后使用 FileReference.upload。


更新 2
无法在虚拟 FileReference 中设置数据,数据是只读属性。


更新 3
但这有同样的问题,不显示图片上传进度,来自上面的链接:

“不幸的是,在获取进度事件时出现问题。我们在向服务器发送数据期间无法显示任何进度,因为 Flash 不支持它”

我正在寻找上述问题的解决方案。URLLoader 可以很好地发布图像数据。

4

2 回答 2

3

URLLoader设置为在加载完成之前无法接收进度事件,如文档中所述。您也许可以根据需要使用URLStream来获取进度事件?我不确定 URLStream 的进度事件是否仅在下载服务器响应时触发,或者它们是否会为完整事务(上传和下载)触发,文档似乎没有准确指定。

于 2010-12-08T20:14:35.130 回答
-1

使用 FileReference.upload,这正是该方法的用途,您将拥有进度指示器。

于 2009-10-03T19:31:01.773 回答