Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как узнать процент отправленных данных(URLLoader) на PHP-сервер? (http://www.flasher.ru/forum/showthread.php?t=195380)

TWETTI 05.03.2013 20:13

Как узнать процент отправленных данных(URLLoader) на PHP-сервер?
 
Я отправляю ByteArray на PHP-сервер с помощью URLLoader. Как можно узнать в процентах прогресс отправки? ProgressEvent не реагирует на отправку данных.

gloomyBrain 05.03.2013 20:31

Никак иначе чем описано тут.

yasha005 05.03.2013 20:34

Я вас, gloomyBrain полностью поддерживаю в данном вопросе.

В дополнении к вышесказанному:
Примерчик, с официальной документации:

FileReferenceExample.as

В следующем примере отображается формат данных и информация о состоянии файла, загруженного при выполнении кода.

Примечание. Чтобы запустить данный пример, следует изменить свойство uploadURL.url, чтобы вместо фиктивного адреса в этом примере оно указывало фактический (действующий) URL-адрес. URL-адрес должен указывать на файл yourUploadHandlerScript.cfm в корневом веб-каталоге указанного URL-адреса. В зависимости от вашей конфигурации, чтобы обеспечить сетевой доступ к этому файлу, может также потребоваться скомпилировать SWF-файл с установленным для параметра "Безопасность локального воспроизведения" режимом "Доступ только к сети" или обновить параметры безопасности проигрывателя Flash Player.


Код AS3:

package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.FileFilter;
    import flash.net.FileReference;
    import flash.net.URLRequest;
 
    public class FileReferenceExample extends Sprite {
        private var uploadURL:URLRequest;
        private var file:FileReference;
 
        public function FileReferenceExample() {
            uploadURL = new URLRequest();
            uploadURL.url = "http://www.[yourDomain].com/yourUploadHandlerScript.cfm";
            file = new FileReference();
            configureListeners(file);
            file.browse(getTypes());
        }
 
        private function configureListeners(dispatcher:IEventDispatcher):void {
            dispatcher.addEventListener(Event.CANCEL, cancelHandler);
            dispatcher.addEventListener(Event.COMPLETE, completeHandler);
            dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
            dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            dispatcher.addEventListener(Event.OPEN, openHandler);
            dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            dispatcher.addEventListener(Event.SELECT, selectHandler);
            dispatcher.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA,uploadCompleteDataHandler);
        }
 
        private function getTypes():Array {
            var allTypes:Array = new Array(getImageTypeFilter(), getTextTypeFilter());
            return allTypes;
        }
 
        private function getImageTypeFilter():FileFilter {
            return new FileFilter("Images (*.jpg, *.jpeg, *.gif, *.png)", "*.jpg;*.jpeg;*.gif;*.png");
        }
 
        private function getTextTypeFilter():FileFilter {
            return new FileFilter("Text Files (*.txt, *.rtf)", "*.txt;*.rtf");
        }
 
        private function cancelHandler(event:Event):void {
            trace("cancelHandler: " + event);
        }
 
        private function completeHandler(event:Event):void {
            trace("completeHandler: " + event);
        }
 
        private function uploadCompleteDataHandler(event:DataEvent):void {
            trace("uploadCompleteData: " + event);
        }
 
        private function httpStatusHandler(event:HTTPStatusEvent):void {
            trace("httpStatusHandler: " + event);
        }
 
        private function ioErrorHandler(event:IOErrorEvent):void {
            trace("ioErrorHandler: " + event);
        }
 
        private function openHandler(event:Event):void {
            trace("openHandler: " + event);
        }
 
        private function progressHandler(event:ProgressEvent):void {
            var file:FileReference = FileReference(event.target);
            trace("progressHandler name=" + file.name + " bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
        }
 
        private function securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityErrorHandler: " + event);
        }
 
        private function selectHandler(event:Event):void {
            var file:FileReference = FileReference(event.target);
            trace("selectHandler: name=" + file.name + " URL=" + uploadURL.url);
            file.upload(uploadURL);
        }
    }
}


TWETTI 05.03.2013 20:44

gloomyBrain, yasha005, спасибо. А с помощью FileReference я смогу получить ответ от сервера? Сервер мне отдает XML файл.

yasha005 05.03.2013 23:02

Цитата:

Сообщение от TWETTI (Сообщение 1123750)
gloomyBrain, yasha005, спасибо. А с помощью FileReference я смогу получить ответ от сервера? Сервер мне отдает XML файл.

Примерчик выше скомпилируйте. По-ходу тестирования трэйс вам даст наиболее полный полный ответ на этот вопрос


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

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