Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Flex. Мультизагрузка не работает в сервере (http://www.flasher.ru/forum/showthread.php?t=175146)

chiffa 10.02.2012 21:28

Flex. Мультизагрузка не работает в сервере
 
Добрый день всем. Сделал скрипт мультизагрузки файлов. На локальном компе все нормально, аплоудится на ура, файлы загружаются. Выкладываю на сервер - почему то грузится только первый файл в списке и все... Может у кого то было нечто подобное? в какую сторону копать?...

Код прилагаю:
Код AS3:

 
        import mx.events.CollectionEvent;
                        import flash.net.FileReferenceList;
                        import mx.collections.ArrayCollection;
 
                        import flash.events.Event;
                        import flash.external.ExternalInterface;
                        import mx.controls.Alert;
 
 
 
                        public var phpsesid:String;
 
 
 
                        private function myFunc(val:String):void {
                                phpsesid = val;
                                }
 
                        [Bindable]
                        private var photos:ArrayCollection = new ArrayCollection;       
                        private var frList:FileReferenceList = new FileReferenceList;
 
 
 
 
 
 
                        private function init():void
                        {
 
                                ExternalInterface.addCallback("func", myFunc);
 
 
 
                                photos.addEventListener(CollectionEvent.COLLECTION_CHANGE,function():void
                                {
                                        startUploadButton.enabled = (photos.length>0);
                                        clearPhotosButton.enabled = (photos.length>0);
                                });
                                frList.addEventListener(Event.SELECT,addPhotos);
                        }               
 
                        private function selectPhotos():void
                        {
                                var fileFilter:FileFilter = new FileFilter("Изображения jpeg", "*.jpg; *.jpeg; *.rar; *.zip");
                                frList.browse([fileFilter]);
                        }
 
                        private function addPhotos(e:Event):void
                        {
                                for (var i:uint = 0; i < frList.fileList.length; i++)
                                {
                                        var elem:Object = new Object;
                                        elem.fr = FileReference(frList.fileList[i]);
                                        elem.fr.load();
                                        elem.fr.addEventListener(Event.COMPLETE,refreshThumb);
                                        photos.addItem(elem);
                                }
                        }
 
                        private function refreshThumb(e:Event):void
                        {
                                photosList.invalidateList();
                        }
 
                        private function clearPhotos():void
                        {
                                photos.removeAll();
                        }
 
                        public function clearPhoto(data:Object):void
                        {
                                photos.removeItemAt(photos.getItemIndex(data));
                        }
 
                        private function startUpload():void
                        {
                                photosProgressContainer.visible = true;
 
                                if (phpsesid == '' || phpsesid == null)
                                {
 
                                        Alert.show('Не удалось провести иденцификацию! Попробуйте обновить страницу!');
                                }
                                else
                                {
 
                                var request:URLRequest = new URLRequest();
                                request.url = "http://******/upload.php?psi=" + phpsesid;
 
                                var fr:FileReference = photos.getItemAt(0).fr;
                                fr.cancel();
                                fr.addEventListener(ProgressEvent.PROGRESS,uploadProgress);
                                fr.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA,uploadComplete);
                                fr.upload(request);
                                }
                        }
 
                        private function uploadProgress(e:ProgressEvent):void
                        {
                                photosProgress.setProgress(e.bytesLoaded,e.bytesTotal);
                        }
 
                        private function uploadComplete(e:DataEvent):void
                        {
 
                                test.text = test.text + e.data;
                                photos.removeItemAt(0);
                                if (photos.length > 0)
                                        startUpload();
                                else
                                        photosProgressContainer.visible = false;
                        }
 
                        private function cancelUpload():void
                        {
                                photos.getItemAt(0).fr.cancel();
                                photosProgressContainer.visible = false;
                        }

Буду признателен за помощь!

wvxvw 11.02.2012 00:16

Я бы за анонимные функции-обработчики сразу отправлял переписывать. А так - не знаю, а что вы сделали для того, чтобы диагностировать проблему?

Функции по загрузке нужно вызывать в ответ на событие мыши или клавиатуры.

ЗЫ. Не делайте так никокгда:
Код AS3:

if (phpsesid != "" && phpsesid != null)

нет, наверное, ни одного языка, который бы не решил эту проблему лучше. В AS3 это делается так:
Код AS3:

if (phpsesid)


chiffa 11.02.2012 04:38

Цитата:

Сообщение от wvxvw (Сообщение 1062126)
Я бы за анонимные функции-обработчики сразу отправлял переписывать. А так - не знаю, а что вы сделали для того, чтобы диагностировать проблему?

Функции по загрузке нужно вызывать в ответ на событие мыши или клавиатуры.

ЗЫ. Не делайте так никокгда:
Код AS3:

if (phpsesid != "" && phpsesid != null)

нет, наверное, ни одного языка, который бы не решил эту проблему лучше. В AS3 это делается так:
Код AS3:

if (phpsesid)



Благодарю за подсказку! Учту.

У меня функция вызывается после нажатия на кнопку "загрузить". Просто непонятно почему на локальном компе работает, а на сервер нет. Даже незнаю с чего можно начать "диагностику" в такой ситуации...

fish_r 11.02.2012 07:10

Через дебаг плеер смотрите? Никаких ошибок в ходе загрузки или сразу после не возникает?

chiffa 11.02.2012 17:00

да вроде все нормально....


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

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