Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Проблема с передачей файлов на сервер - FileReference (http://www.flasher.ru/forum/showthread.php?t=135835)

ExtendedPlay 02.02.2010 22:25

Проблема с передачей файлов на сервер - FileReference
 
Привет всем!

Вчера начал разбираться с Flex и AS3 (а заодно и MXML) :confused:
Итак, делаю простенький загрузчик фотографий на сервер.
Возникла проблемка - на сервер почему-то вообще ничего не отправляется... ни одного запроса... видимо я что-то не так делаю)

Вот основа:
Код AS3:

private var photo:ArrayCollection = new ArrayCollection;
private var frList:FileReferenceList = new FileReferenceList;
 
//юзер выбирает файлы
private function selectFiles():void{
        frList.browse();
}
 
//из выбранных файлов создаём массив (ArrayCollection)
private function addFiles(e:Event):void{
        for (var i:uint = 0; i < frList.fileList.length; i++)
        {
                var elem:Object = new Object;
                elem.fr = FileReference(frList.fileList[i]);
                photo.addItem(elem);
        }
}
 
//ну и собственно загружаем
private function uploadDo():void{
        var request:URLRequest = new URLRequest();
        request.url = "http://test.ru/uploader.php";
 
        var fr:FileReference = photo.getItemAt(0).fr;
        fr.cancel();
        fr.upload(request);
 
        //если тут вывести fr.name, то выводится имя файла. то есть всё вроде норм)
}

Так вот после всего этого ничего не происходит (Сеть в фаербаге продолжает пустовать) :boredom:

Пожалуйста, ткните носом на ошибку.

Заранее благодарю откликнувшихся!

pS: Всё это дело проворачиваю на денвере и FlexBuilder3.

Добавлено через 12 часов 59 минут
Так, понял что проблемы не во флешке.

Вот вопрос...
флешка у меня лежит на cdn.mysite.ru
а данные я передаю на mysite.ru

может быть поэтому ничего не передаётся? может у флеша политика безопасности такая что передавать можно только в пределах одного домена?)

alatar 03.02.2010 21:03

Код AS3:

private var fr:FileReference;
private function uploadDo():void{
        var request:URLRequest = new URLRequest();
        request.url = "http://test.ru/uploader.php";
 
        fr = photo.getItemAt(0).fr;
        fr.cancel();
        fr.upload(request);
}

Только это надо писать в обработчике события щелчка по кнопке.
Лучше используйте URLLoader

Добавлено через 5 часов 59 минут
Цитата:

может быть поэтому ничего не передаётся? может у флеша политика безопасности такая что передавать можно только в пределах одного домена?)
Эта проблема решаема с помощью crossdomain.xml

kackbip 04.02.2010 07:10

alatar верно говорит - можно делать аплоад также с помощью URLLoader, но такой метод не дает информации о прогрессе аплоада. Ну.. и почему URLLoader лучше - тоже не понятно.

alatar 04.02.2010 15:05

Цитата:

Сообщение от kackbip (Сообщение 883981)
...с помощью URLLoader, но такой метод не дает информации о прогрессе аплоада.

FileReference тоже не дает точной информации о прогрессе аплоада.
Цитата:

Ну.. и почему URLLoader лучше - тоже не понятно.
Лучше тем, что можно использовать в любом месте кода, а не только в обработчике кнопки,

rty 05.02.2010 19:04

alatar,
у метода upload() FileReference есть как раз событие, дающее информацию о процессе загрузки.


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

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