apache-flex - 在开始下载之前如何获取远程文件的大小?

标签 apache-flex actionscript-3

我需要在下载之前弄清楚远程文件的大小。我知道在本地可以按如下方式完成

var _filePath:String = "X:/save/abc.exe";
var file:File = new File(_filePath);
if (file.size > 1000)
{
    trace("too large");
}

但是当我尝试像

这样的远程文件时

var _filePath:String = "http://www.aaa.com/webfile.exe";

它没有用。我如何在使用前获取远程文件的大小

  var _downLoadPath:String = "http://www.aaa.com/webfile.exe";

谢谢!

最佳答案

我现在想到的是像这样使用进度事件:

var downloadURL:URLRequest; var fileName:String = "SomeFile.pdf"; var 文件:文件引用;

function FileReference_event_progress()
{
    downloadURL = new URLRequest();
    downloadURL.url = "http://www.aaa.com/webfile.exe";
    file = new FileReference();
    file.addEventListener(ProgressEvent.PROGRESS, progressHandler);
    file.download(downloadURL, fileName);
}

function progressHandler(event:ProgressEvent):void
{
    var file:FileReference = FileReference(event.target);
    trace(event.bytesTotal);
}

此脚本将输出文件的总大小(但会在下载过程开始后输出)。您可以做的是在收到文件的第一部分以及总大小后立即停止下载 - 这就是我想要的解决方法。

您可以尝试的另一件事是使用 trace(file.bytesTotal); 而不是 file.download(downloadURL, fileName); 但我不确定将在没有下载过程开始的情况下工作,因为没有请求发送到文件。

关于apache-flex - 在开始下载之前如何获取远程文件的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2514288/

相关文章:

apache-flex - 检测到重复的基于 HTTP 的 FlexSession,通常是由于远程主机禁用了 session cookie

flash - 开发flex应用程序时如何将一些日志输出到控制台?

java - 尝试在 Flash Builder 4.5 for PHP 中调试时出现 "Unrecognized Windows Sockets error: 0: JVM_Bind"

performance - 隐藏动画片段,渲染性能

actionscript-3 - Actionscript 3,多音轨

apache-flex - 为什么 loaderInfo 仅在应用程序 Complete 触发后可用?

ios - 适用于 Flex mobile\iOS 的轻量级数据网格组件?

apache-flex - Flex ComboBox、默认值和数据提供者

actionscript-3 - 想要使用自定义调度事件发送参数

java - 在 Actionscript 3 中从 Java Servlet 接收 ByteArray