Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   FileReference и скачивание файла (http://www.flasher.ru/forum/showthread.php?t=116682)

denis_ka 08.10.2008 13:30

FileReference и скачивание файла
 
Доброго времени суток!

При скачивании файла открывается диалоговое окно с вопросом куда сохранить файл. После выбора папки и нажатия кнопки "Сохранить" файл не сохраняется. Но после того как файл был открыт непосредственно через браузер по прямой ссылке и при повторном скачивание файла через диалоговое окно происходит скачивание файла на локальный ПК.

Получается, что после того как файл сохранился во временном хранилище браузера он скачивается. Каждый раз открывать файл для скачивания в браузере и затем скачивать через FileReference не дело.

Почему такое может происходить и можно ли это как-то решить?

Спасибо.

Wolsh 08.10.2008 14:27

Ну а код выложим?)))) Или будем гадать на кофейной гуще? Причины разные могут быть. Например, не создан экземпляр файлРеференс через new, или он занят другим соединением. Или с политикой безопасности чтото не так. Или с путем.

denis_ka 08.10.2008 14:49

Пожалуйста!

Код:

import flash.net.FileReference;

 var listener:Object = new Object();
 
 listener.onSelect = function(file:FileReference):Void {
  trace("onSelect: " + file.name);
  trace("size: " + file.size + " bytes");

 }
 
 listener.onCancel = function(file:FileReference):Void {
  trace("onCancel");
 }
 
 listener.onOpen = function(file:FileReference):Void {
  trace("onOpen: " + file.name);
 }
 
 listener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void {
  trace("onProgress with bytesLoaded: " + bytesLoaded + " bytesTotal: " + bytesTotal);
 }
 
 listener.onComplete = function(file:FileReference):Void {
  trace("onComplete: " + file.name);
 }
 
 listener.onIOError = function(file:FileReference):Void {
  trace("onIOError: " + file.name);
 }
 
 var fileRef:FileReference = new FileReference();
 fileRef.addListener(listener);
 var url:String = "http://domain.com/path/file.mov";
 var url_name = get_file_name(url);
 trace ("saving file from: " + url + " filename: " + url_name);
 if(!fileRef.download(url, url_name)) {
  trace("dialog box failed to open.");
 }


Wolsh 08.10.2008 16:19

get_file_name(url) поподробнее

denis_ka 08.10.2008 17:36

Цитата:

Сообщение от Wolsh (Сообщение 768839)
get_file_name(url) поподробнее

get_file_name - это функция, которая возвращает имя файла из заданной строки. Т.е. из URL http://domain.com/path/file.mov функция `get_file_name` вернёт `file.mov`. Ведь именно переменная `url_name` выводится в строке "Имя файла:" в диалоговом окне. Верно?

Я не специалист по Flash и писал Flash-приложение не я. Но пытаемся разобраться почему не происходит сохранение

Wolsh 08.10.2008 18:41

Думаю дело в безопасности (код из хелпа, не придерешься)))
Надо прописать домен(ы - с www тоже) в разрешенные.
Ну и, надеюсь Вы смотрите тестовую флэшку не с локального диска)))

denis_ka 09.10.2008 09:00

Добавление домена(-ов) в разрешённые не помогло, да и как заставить каждого пользователя добавлять домены

Flash-приложение смотрю на хостинге.

Ну что ж, будем использовать getURL()

Wolsh, спасибо большое за помощь :)

Wolsh 09.10.2008 10:04

Да нет, ну зачем же) Это работает, буквально неделю назад делал проект и использовал даунлоад с файлреференс.
А что значит "каждого пользователя"? Речь о коде во флэшке. Или у Вас флэшка на одном домене качает с разных других???
Код:

System.security.allowDomain("http://domain.com");
System.security.allowDomain("http://www.domain.com");


denis_ka 09.10.2008 14:53

А-а-а, понятно! Я думал, что рёчь идёт о браузере. Теперь понятно. Попробуем ...

denis_ka 10.10.2008 09:05

А не подскажите куда именно вставить эти строчки? До объявления экземпляра объекта Object() ?


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

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