Я читал об ограничениях безопасности для загрузки файлов в Flash Player 10. Согласно файлам документов FileReference для загрузки(), загрузка не требуется быть вызвано действием, инициированным пользователем (функция просмотра(), но эта другая история). Если бы это было так, это создало бы неудобный пользовательский опыт для многофайловых загрузок, так как только одна загрузка может произойти сразу - поэтому пользователю нужно будет щелкнуть (или нажать кнопку) один раз на файл, чтобы инициировать загрузку, но только когда предыдущий файл завершил загрузку.
Документация для URLLoader.load(), с другой стороны, указывает:
В Flash Player 10 и более поздних версиях, если вы используете многостраничный Content-Type (для пример "multipart/form-data" ), который содержит загрузку (указанную Параметр "filename" в заголовке "content-disposition" в POST тело), операция POST подчиняется правилам безопасности, применяемым к загрузки:
Операция POST должна выполняться в ответ на инициированный пользователем действия, такие как щелчок мышью или нажатие клавиши.
Эта статья Flash Security подтверждает документацию по URLLoader (см. раздел "API POST" ).
Однако в оригинальной технической документации не указывается это - только просмотр в FileReference должен выполняться в ответ на инициированное пользователем действие, а не (потенциально URLLoader -driven) загружать себя:
Когда SWF файл использует FileReference.browse() и Методы FileReference.upload() для загрузки файла на сервер, Flash Игрок применяет два правила безопасности:
- FileReference.browse() должен вызываться из обработчика пользовательского события (событие мыши или клавиатуры).
[...]
Flash Player применяет эти же правила в любое время сетевой API вызывается для выполнения POST, который появляется на сервере для добавления загрузки.
Насколько я могу судить по фактическому использованию API-интерфейса URLLoader для загрузки файла, загрузка действительно не требуется из инициированного пользователем действия; но, это потому, что я использую отладочную версию проигрывателя, или потому, что документация неверна? (Или что-то еще?)
TL; DR: Документация содержит противоречивую информацию, и я не доверяю моим полевым испытаниям (перед лицом документов, которые говорят, что они не должны работать). Может ли URLLoader использоваться для загрузки файла без взаимодействия с пользователем? Или только FileReference? (Это убьет большинство возможностей предварительной обработки файлов, и это то, что мне интересно делать!)