Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   FileReference#download() не принимает относительных путей. (http://www.flasher.ru/forum/showthread.php?t=151065)

GemiBillyBob 22.02.2011 01:34

FileReference#download() не принимает относительных путей.
 
Здравствуйте.
Пробую с помощью FileReference#download() открыть файл, лежащий рядом с флешкой (предполагается локальный запуск флешки).
Делаю в обработчике клика кнопки:
Код AS3:

var fileReference:FileReference = new FileReference();
fileReference.download(new URLRequest('docFile.doc'), 'docFile.doc');
/* Выдаёт ошибку:
Error: Error #2039: Неверный удаленный протокол URL. Удаленный протокол должен быть HTTP или HTTPS.
        at flash.net::FileReference/download()
        at classes.Main::fileReferenceButton/clickFRefBtnHandler() *.

Могу ли я перейти по относительной ссылке к файлу при локальном запуске флешки?
Открывать его не нужно, можно, чтоб через браузер он загрузился.

Спасибо.

КорДум 22.02.2011 01:59

А если "/" поставить перед? Причем надо будет еще и экранировать - "//".

Добавлено через 2 минуты
А, если не пройдет, можно узнать, где лежит swf, и подставить в путь ее местонахождение. Как это сделать - поиск поможет.

in4core 22.02.2011 04:02

ApplicationDomain разве не вернет localHost в данном случае?

cleptoman 22.02.2011 11:15

при чем тут ApplicationDomain вообще?

in4core 22.02.2011 12:46

Цитата:

при чем тут ApplicationDomain вообще?
Ну автор говорит что ему нужен путь типа
Код AS3:

http://.....doc

, а апликайшн поидее вернет http://127.0.0.1 или нет ?

kackbip 22.02.2011 12:57

Можно воспользоваться LoaderInfo#url

gloomyBrain 22.02.2011 13:01

Цитата:

а апликайшн поидее вернет http://127.0.0.1 или нет ?
Вам сюда

wvxvw 22.02.2011 14:37

А зачем вы это делаете?.. download() специально задуман для закачки по HTTP, зачем вам это делать локально?

GemiBillyBob 22.02.2011 14:55

Ситуация была такова: например с диска или откуда-то (заранее не знаю месторасположение) запускается swf-ка и в ней есть кнопка типа "скачать документы в формате .doc" (он находится в соседней с флешкой папке, но подразумевается, что не все способны открыть папку с помощью Проводника).
В общем меня устроил следующий условный код.
Тут браузера окно запускается, лучше бы конечно без него — я думал FileReference#download мне поможет в этом:
Код AS3:

var fileRelativePath:String="/docs/ImportantDocument.doc";
function getSwfFolder():String{
        var st:String=loaderInfo.url;
        var tempArr:Array=st.split("/");
        tempArr.pop();               
        st=tempArr.join("/");
        return st;
        }
function clickHandler(e:MouseEvent):void{
        navigateToURL(new URLRequest(getSwfFolder()+fileRelativePath));
        }

Всем спасибо за участие.

wvxvw 23.02.2011 01:06

Вы пытаетесь сделать программу для человека, который не умеет пользоваться компьютером? На флеше? Труд, конечно, достойный всяческих похвал, но... ну, даже не знаю, а если просто navigateToURL? так оно проводнику и отдаст решать, что делать с файлом.

Да, и еще такой момент, если в пути первый слеш, и это файловая система, то большинство операционных систем, если и сможет это понять, то поймут такой путь как абсолютный, т.е. ведущая косая - это ссылка на корневую директорию.
Если чесно, мне сейчас не на чем эксперементировать, и я практически уверен, что так работать не будет, но а что будет, если в качестве протокола указать file:///?


Часовой пояс GMT +4, время: 19:53.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.