Понимание модели безопасности Flash Player 10 для загрузки файлов

Я читал об ограничениях безопасности для загрузки файлов в Flash Player 10. Согласно документации FileReference для upload () , загрузка не выполняется запускаться действием, инициированным пользователем (browse () выполняет, но это уже другая история). Если бы это было так, это привело бы к неудобному взаимодействию с пользователем при загрузке нескольких файлов, поскольку одновременно может происходить только одна загрузка, поэтому пользователю нужно было бы щелкнуть (или нажать кнопку) один раз для каждого файла, чтобы начать загрузку, но только когда закончилась загрузка предыдущего файла.

В документации для URLLoader.load () , с другой стороны, говорится:

В Flash Player 10 и более поздних версиях, если вы используете составной Content-Type (для пример "multipart / form-data"), который содержит загрузку (обозначенную параметр "filename" в заголовке "content-disposition" в POST body), операция POST подчиняется правилам безопасности, применяемым к загрузки:

Операция POST должна выполняться в ответ на инициированный пользователем действие, такое как щелчок мышью или нажатие клавиши.

Эта статья о Flash Security подтверждает документацию URLLoader (см. Раздел «API-интерфейсы POST»).

Однако в исходном техническом документе это не говорится - только то, что просмотр FileReference должен происходить в ответ на действие, инициированное пользователем, а не (потенциально управляемое URLLoader ) загрузить себя:

Когда SWF-файл использует FileReference.browse () и FileReference.upload () методы для загрузки файла на сервер, Flash Плеер применяет два правила безопасности:

  • FileReference.browse () должен вызываться из обработчика пользовательского события (события мыши или клавиатуры).

[...]

Flash Player применяет эти правила каждый раз, когда сетевой API вызывается для выполнения POST, который появляется на сервере чтобы содержать загрузку .

Насколько я могу судить по фактическому использованию URLLoader API для загрузки файла, загрузка действительно не должна происходить в результате действия, инициированного пользователем; но это потому, что я использую отладочную версию плеера, или потому что документация неверна? (Или что-то еще?)

TL; DR: Документация содержит противоречивую информацию, и я не доверяю своим полевым тестам (несмотря на документы, которые говорят, что они не должны работать). Можно ли использовать URLLoader для загрузки файла без взаимодействия с пользователем? Или только FileReference? (Это убило бы большинство возможностей предварительной обработки файлов, в чем я и заинтересован!)

10
задан Cameron 19 February 2012 в 03:18
поделиться