Получение абсолютного локального пути во Flex - PullRequest
3 голосов
/ 09 октября 2010

Я огляделся, и последняя ссылка, которую я увидел, была в 2008 году, в которой говорилось, что стандартный браузер FileReference не поддерживает получение абсолютного локального пути к файлу пользователя, если это не приложение AIR, и действительно, в документах нет никаких указаний на обратное.Причиной этого, по-видимому, является некоторая ошибочная проблема безопасности ... Я понимаю, что не очень хорошая идея, чтобы любое приложение Flash знало вашу структуру каталогов, но если пользователь фактически предоставляет вашему приложению файл, я думаю, что это не лишает законной силы безопасности.модель, чтобы знать только абсолютный путь к этому файлу.

Мне интересно, изменилось ли вообще положение вещей с Flex 4 и есть ли способ получить локальное имя файла чего-либо.Мне это нужно, потому что я делаю приложение, которое при распределении запускается локально в 99% случаев, поэтому полная загрузка файла только для того, чтобы сохранить его где-то еще на локальной машине, кажется глупой.(Кроме того, стандартный метод загрузки файлов не поддерживает SOAP, что я и использую для всех других своих служб ...) Я всегда могу просто указать тип пользователя в их локальном пути, но это выглядит действительно глупо.

Ответы [ 2 ]

3 голосов
/ 09 октября 2010

По соображениям безопасности во Flash (не в AIR) вам не разрешено видеть полный путь к файлу FileReference.

0 голосов
/ 10 октября 2010

Это зависит от того, чего вы пытаетесь достичь - не совсем ясно, что вы пытаетесь сделать.

"делать полную загрузку файла просто для того, чтобы сохранить его где-то еще на локальной машине, кажется глупым"

Начиная с flash player 10, вы можете сохранять данные непосредственно в локальной файловой системе, не заходя на удаленный сервер. Вам просто нужно вызвать функцию FileReference.download() в ответ на гостевую реакцию пользователя, например, щелчок мышью или нажатие клавиши (например, нажатие кнопки сохранения).

FileReference документация: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/FileReference.html#download%28%29

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

Например, если я выбираю файл на рабочем столе компьютера с Windows, я не хочу, чтобы какое-то случайное веб-приложение знало мое имя пользователя:

"C: \ Documents and Settings \ [имя пользователя] \ Desktop \ myAwesomeFile.txt"

и по этому вы можете догадаться, какая у меня версия windows.

Если вам нужно больше взаимодействия с рабочим столом пользователя, вам следует использовать AIR - вот почему он существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...