Flash 8 FileReference и проверка целостности файла

Flash 8 FileReference API дает возможность периодически проверять количество передаваемых байтов:

listener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void {
    trace("onProgress with bytesLoaded: " + bytesLoaded + " bytesTotal: " + bytesTotal);
}

(больше информации здесь и здесь)

В случае загрузки, вы бы предложили использовать этот метод для проверки целостности загруженного файла?

1 ответ

Решение

Просто прослушайте событие onComplete, чтобы проверить, правильно ли загружен файл. Если до сих пор не было выдано ни одного события ошибки, файл должен находиться на сервере.

Если вы не хотите доверять FlashPlayer в отношении целостности публикуемого файла (например, ваш сервер не смог переместить его из папки / tmp и т. Д.), Вероятно, потребуется что-то, чтобы убедиться, что процедура завершена правильно:

  • Проверьте размер файла (лучше всего контрольную сумму, но не думайте, что вы можете это получить) на стороне клиента.
  • Разместите эту информацию в запросе на загрузку файла.
  • После получения данных поста соберите ту же информацию (размер, контрольную сумму) на стороне сервера из полученного файла и сравните ее с информацией, сгенерированной на стороне клиента.
  • Статус возврата (неудача / успех)

... Если ваше приложение не очень разумное, я бы пропустил это, просто по той простой причине, что оно может вызвать больше проблем, чем если бы вы вообще не проверяли целостность:)

Лучше: в зависимости от файла, который вы отправляете, вы можете найти серверный скрипт, чтобы проверить, хорошо ли выглядит файл, и просто отправить обратно статус в зависимости от этого.

Другие вопросы по тегам