Как я могу получить размер удаленного файла, прежде чем начать его загрузку? - PullRequest
2 голосов
/ 25 марта 2010

Мне нужно выяснить размер удаленного файла перед его загрузкой. И я знаю, что в локальном месте это можно сделать следующим образом

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";

Спасибо!

Ответы [ 2 ]

5 голосов
/ 25 марта 2010

Что я имею в виду сейчас, так это использую событие прогресса:

var downloadURL: URLRequest; var fileName: String = "SomeFile.pdf"; var файл: FileReference;

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);, но я не уверен, что она будет работать без запуска процесса загрузки, поскольку нет запроса на отправку файла.

2 голосов
/ 25 марта 2010

Я никогда не использовал Action Script, но, как оказалось, вы скачиваете файл через http, что вы ищете, это content_length в заголовке http. Http имеет запрос HEAD, а также более известные GET и POST. Если вы можете выяснить, как сделать запрос HEAD, тогда вы можете проанализировать заголовок ответа на предмет длины содержимого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...