Как получить byteArray файла при загрузке во Flex 2 - PullRequest
0 голосов
/ 12 апреля 2011
     There is a WSDL which have one method which take byteArray & fileName(which i want to write) as a parameter to write a file in local system, the following is the code...

public void writeLocation(byte[] byteToWrite, String fileName) throws FileNotFoundException
{
    StringBuffer fileLocation = new StringBuffer("D:\\Products\\Device");
    fileLocation.append("\\"+fileName);
    File file = new File(fileLocation.toString());
    BufferedOutputStream bufferWriter = new BufferedOutputStream(new FileOutputStream(file));
    try 
    {
        bufferWriter.write(byteToWrite);
    }
    catch (IOException e) 
    {
        System.out.println("Error file Writing....");
        e.printStackTrace();
    }
    finally
    {
        try 
        {
            bufferWriter.close();
        } 
        catch (IOException e) 
        {
            e.printStackTrace();
        }
    }
}

Теперь я использую flex 2 & для следующих действий:

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:WebService id = "byteCheckUpload" wsdl="http://localhost:8080/XFireTest/xfire/EmployeeService?wsdl" showBusyCursor="true">
        <mx:operation name="writeLocation" fault="writeLocationFH(event)" result="writeLocationRH()"/>
    <mx:WebService/>
<mx:Script>
    <![CDATA[
        import mx.controls.Alert;
        import mx.rpc.events.FaultEvent;

        private var refUploadFile : FileReference;

        public function uploadFile() : void
        {
            refUploadFile = new  FileReference(); 
            refUploadFile.browse(); 
            refUploadFile.addEventListener(Event.SELECT,onFileSelect); 
            refUploadFile.addEventListener(Event.COMPLETE,onFileComplete);  
        }

        public function onFileSelect(event : Event) : void
        {
            refUploadFile.load();
        }

        public function onFileComplete(event : Event) : void
        {
            refUploadFile = event.currentTarget as FileReference; 
            var data:ByteArray = new ByteArray(); 
            refUploadFile.data.readBytes(data,0,refUploadFile.data.length); 

            byteCheckUpload.writeLocation(data, refUploadFile.name) 
        }

        public function writeLocationFH(event : FaultEvent) : void
        {
            Alert.show(event.fault.faultString);    
        }

        public function writeLocationRH() : void
        {
            Alert.show("Please check the Location .... !!!");
        }
    ]]>
</mx:Script>
<mx:Button x="308" y="156" label="Click button to Upload a file" click="uploadFile();"/>

но flex 2, показывающий ошибку, когда я искал, я обнаружил, что во flex 2 нет свойства "data". поэтому я не могу создать выбранный объект в byteArray .. Может ли кто-нибудь помочь мне, как я это делаю .. и не хочу использовать HTTPService (метод POST) ..

Пожалуйста, помогите .. Заранее спасибо

1 Ответ

0 голосов
/ 14 апреля 2011

Эта функция недоступна в FP 9. Вам необходимо настроить ваше приложение на флэш-плеер 10 .

Однако это было предназначено для Flex 3, поэтому может работать или не работать для более старых версий платформы. В любом случае проблема заключается в том, что вы используете функцию, недоступную в используемой версии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...