![]() |
FileReference#download() не принимает относительных путей.
Здравствуйте.
Пробую с помощью FileReference#download() открыть файл, лежащий рядом с флешкой (предполагается локальный запуск флешки). Делаю в обработчике клика кнопки: Код AS3:
Открывать его не нужно, можно, чтоб через браузер он загрузился. Спасибо. |
А если "/" поставить перед? Причем надо будет еще и экранировать - "//".
Добавлено через 2 минуты А, если не пройдет, можно узнать, где лежит swf, и подставить в путь ее местонахождение. Как это сделать - поиск поможет. |
ApplicationDomain разве не вернет localHost в данном случае?
|
при чем тут ApplicationDomain вообще?
|
Цитата:
Код AS3:
|
Можно воспользоваться LoaderInfo#url
|
Цитата:
|
А зачем вы это делаете?.. download() специально задуман для закачки по HTTP, зачем вам это делать локально?
|
Ситуация была такова: например с диска или откуда-то (заранее не знаю месторасположение) запускается swf-ка и в ней есть кнопка типа "скачать документы в формате .doc" (он находится в соседней с флешкой папке, но подразумевается, что не все способны открыть папку с помощью Проводника).
В общем меня устроил следующий условный код. Тут браузера окно запускается, лучше бы конечно без него — я думал FileReference#download мне поможет в этом: Код AS3:
|
Вы пытаетесь сделать программу для человека, который не умеет пользоваться компьютером? На флеше? Труд, конечно, достойный всяческих похвал, но... ну, даже не знаю, а если просто navigateToURL? так оно проводнику и отдаст решать, что делать с файлом.
Да, и еще такой момент, если в пути первый слеш, и это файловая система, то большинство операционных систем, если и сможет это понять, то поймут такой путь как абсолютный, т.е. ведущая косая - это ссылка на корневую директорию. Если чесно, мне сейчас не на чем эксперементировать, и я практически уверен, что так работать не будет, но а что будет, если в качестве протокола указать file:///? |
О целесообразности прошу не говорить, тут это соль на рану, я молю богов о прощении за создание такого проекта.
file:/// с download() не работает, пишет ту же ошибку, что и в поcте в начале темы. |
И не заработает, в этом вся фишка. В тексте ошибки явно сказано: удаленный протокол должен быть HTTP или HTTPS. Это значит, что получить файл с локального компьютера при помощи FileReference.download() можно только при наличии на нем веб-сервера, отдающего файлы по указанным выше протоколам. Естественно, не стоит рассчитывать на его наличие у пользователей, неспособных открыть папку в проводнике :)
Чем вам не угодил тот же navigateToURL для открытия нужной папки? В любом случае, вы хотите от флешки работы с локальной файловой системой - скопировать файлы из одного места в другое. Сам по себе флэшплеер вам такого не позволит, нужно либо засунуть его в обертку, либо писать вспомогательное приложение для вызова через fscommand. |
| Часовой пояс GMT +4, время: 23:38. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.