Можно ли получить доступ к необработанным данным файла, так как FileReference.load() загружает их в память?
Я думаю, что нет, но, возможно, я ошибаюсь. Кто-нибудь?
ОБНОВИТЬ:
Это не.
2 ответа
Я думаю, что вы можете, по крайней мере, нет ничего в документах, которые утверждают иначе. попробуйте добавить ProgressEvent в объект FileReference, чтобы прочитать его свойство данных ( ByteArray) после вызова load()
,
однако, если вы загружаете файл с помощью URLLoader, свойство данных URLLoader заполняется только после завершения операции загрузки.
[РЕДАКТИРОВАТЬ]
так что, в конце концов, невозможно получить доступ к действующим данным fileReference во время загрузки. в документах должно быть четко указано, что это невозможно, поскольку это действительный запрос.
однако после некоторого спора через документы я понял, что вы можете сделать это с помощью класса URLStream, который предоставляет методы для чтения данных во время их загрузки - он предназначен именно для того, что вы ищете.
в этом случае единственное преимущество заключается в том, что для URLStream требуется полный путь URL (объект URLRequest), который не может быть получен из FileReference по соображениям безопасности - возможно получить только имя выбранного файла, но не полный путь. получить локальный путь к файлу в AIR очень просто, но, поскольку вы хотите, чтобы ваше приложение было устойчивым к браузеру, я не совсем уверен, как вы сможете получить доступ к путям файлов с компьютера пользователя - если они не введут путь к файлу, но требование ваших пользователей сделает это серьезно ухудшит UX.