Может ли Flash-действие script читать и записывать локальную файловую систему?

Я думаю, что он может получить доступ только к сети, но не к локальной файловой системе, но из Интернета некоторые люди говорят, что могут в самой новой версии, может кто-нибудь подтвердить? Он может достигать произвольного файла или только определенного местоположения?

Спасибо. Bin

Ответ 1

В общем, SWF с веб-сервера не может читать файлы с клиентского компьютера. Но он может загружать пользовательские файлы с клиентской машины на сервер. Диалоговое окно конкретной операционной системы предлагает пользователю выбрать файл, который будет загружен на сервер. Следовательно, Flash не может прочитать любой файл, который он хочет, только те, которые явно разрешены пользователем.

Перед Flash-проигрывателем 10 SWF не имел прямого доступа к содержимому загружаемого файла - все, что он сделал, действовало как интерфейс для выбора файла и отправки его на сервер. Единственный способ получить его содержимое - отправить его обратно с сервера на SWF, используя URLLoader.

Однако начиная с FP10 класс FileReference имеет метод load(), который позволяет загрузить выбранный непосредственно в SWF, а не передавать его через сервер.

Аналогичные правила применяются к загрузке - файлы могут быть сохранены на пользовательском компьютере только с их разрешения и по месту и имени, указанным пользователем. До FP10 вы могли загружать только файл с сервера клиенту - если вам нужно было сохранить изображение, созданное с помощью SWF, на клиентский компьютер, вам пришлось отправить его на сервер, а затем попросить пользователя загрузить его. Начиная с FP10, вы можете записывать данные непосредственно из SWF (с разрешения пользователя, конечно).


В дополнение к этому SWF может хранить SharedObjects на клиентской машине, которая аналогична куки файлам браузера. Сохранение общих объектов не включает никаких диалоговых окон или разрешений пользователя. Ниже приведено цитируемое на странице liveocs ссылка, приведенная выше.

Локальные общие объекты имеют некоторые ограничения, которые необходимо учитывать при разработке приложения. Иногда SWF файлам не разрешается записывать локальные общие объекты, и иногда данные, хранящиеся в локальных общих объектах, могут быть удалены без вашего ведома. Пользователи Flash Player могут управлять дисковым пространством, доступным для отдельных доменов или для всех доменов. Когда пользователи уменьшают объем доступного дискового пространства, некоторые локальные общие объекты могут быть удалены. Пользователи Flash Player также имеют средства контроля конфиденциальности, которые могут запретить сторонним доменам (доменам, отличным от домена в текущей адресной строке браузера) от чтения или записи локальных общих объектов.

Ответ 2

У Flash-плеера есть механизм безопасности, называемый песочница, которая защищает локальные файлы пользователя, как пользователь, которого вы не хотите использовать flash script для доступа к вашим личным файлам.

Есть два способа доступа к этим файлам: 1) пользователь предоставляет доступ к flash-плееру в определенную папку (щелкните правой кнопкой мыши по flash-плееру → настройки → расширенный → безопасность) 2) используйте adobe air, который обертывает флеш-плеер исполняемым мостом, позволяющим доступ к файловой системе → это не будет веб-приложение, а программа, установленная пользователем.

Flash имеет загрузчик файлов, который может помочь вам разрешить пользователям загружать файлы вручную в вашу программу, если это помогает