Как загрузить изображения во Flex 4 с помощью Filereference? - PullRequest
0 голосов
/ 28 марта 2011

Я пытаюсь загрузить изображения во Flex 4 и пока не добился такого большого успеха.Кто-нибудь, кто может помочь?

Мой код:

  private var fileref:FileReference; 

                protected function application1_creationCompleteHandler(event:FlexEvent):void
                {
                    fileref = new FileReference(); 
                }


                protected function button1_clickHandler(event:MouseEvent):void
                {
                    fileref.browse(); 
                    fileref.addEventListener(Event.SELECT, fileSelect); 
                }

                private function fileSelect(e:Event):void {
                    try {
                    var data:ByteArray = e.target as ByteArray; 
                    fileref.save(data, "pic1.jpg");             
                    }
                    catch(err:Error) {
                        Alert.show("Error: " + err.message); 
                    }
                }

Редактировать:

Это было очень просто:

private function fileComplete(e:Event):void {
                if(fileref.data != null) {
                image1.data = fileref.data; 
                }


            }

Я сделалвторая кнопка, которая должна сохранить изображение, и она отлично работает, но я получаю диалог, действительно ли это необходимо?Как я могу предотвратить это и поместить это явно на диск сервера? Альтернативный вариант (я использую .NET в качестве бэкэнда) для получения образа bytearray и отправки его через веб-сервис .net, позволяющий коду C # сохранить изображение .Может быть, это лучший вариант.Actionscript 3 может иметь некоторые ограничения на то, что он может делать, или я не очень информирован?

protected function button2_clickHandler(event:MouseEvent):void
            {
                fileref = new FileReference(); 
                var data:ByteArray = image1.data as ByteArray; 
                if(data != null) {
                    fileref.save(data); 
                }
                else {
                    Alert.show("Picture is null!");                     
                }

            }

Это работало хорошо, когда я выбрал подход Webservice и сохранил Image (= bytearray) в SqlServer.

1 Ответ

1 голос
/ 29 марта 2011

чтобы сделать снимок и загрузить его, вы можете взглянуть на ImageSnapshot.Это закодирует изображение в JPEG или PNG.Сохранение этого байтового массива даст вам больше гибкости и отделит данные, хранящиеся на сервере, от реализации клиента.

...