2014-06-23 5 views
-1

Base64Encoder를 사용하여 flex를 사용하여 파일을 업로드합니다. 하지만 파일 크기가 1MB를 넘으면 HTTPService에 데이터를 넣을 때 param으로 오류가 표시됩니다. 이걸 도와주세요. 미리 감사드립니다.FLEX에서 파일 업로드가 1MB보다 큰 파일을 허용하지 않습니다.

개 표시 다음과 같은 오류 : 오류 : [의해 IOErrorEvent 유형 = "IO 오류"거품 = false를 취소 할 수 = 거짓의 EventPhase = 2 텍스트 = "오류 # 2032 : 스트림 오류

다음과 같이 내가 쓴

기능입니다. : ..

uploadImageService.method = 'POST'; 
:
protected function uploadButton_clickHandler(event:Event):void{ 
      try{ 
       var uniqueRowId:String=parentApplication.dg.dataProvider[parentApplication.dg.selectedIndex].UNIQUEROWID; 
       var propObj:Object = parentApplication.propertyDict[uniqueRowId]; 
       fileRef = propObj["fileRef_"+uniqueRowId]; 

       fileRef.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA,onUploadComplete); 
       fileRef.addEventListener(IOErrorEvent.IO_ERROR,onIOError); 

       var selectedAttachment : String = propObj["selectedObjectStr_"+uniqueRowId]; 
       var UPLOAD_URL:String="/MDOSF/Customer_tab.do"; 
       var ext:String = selectedAttachment.substr(selectedAttachment.lastIndexOf("."), selectedAttachment.length); 
       ext = ext.toLowerCase();      
       var imgByteArr:ByteArray = event.target.data; 
       var encoder:Base64Encoder = new Base64Encoder();  
       var totalBytes:uint = imgByteArr.length; 
       var limitBytes:String = String((totalBytes/1024)/1024); 
       var numericBytes:Number =Number(limitBytes); 
       var decimal:String = numericBytes.toFixed(2); 
       if(Number(decimal) > 1){ 
        //Alert.show("Cannot upload file with size more than 1 MB","Message"); 
        //return; 
       } 
       encoder.encodeBytes(imgByteArr);      
       var params:Object = new Object(); 
       params.fileName = encodeURIComponent(selectedAttachment); 
       params.ext = ext; 
       params.file_data = encodeURIComponent(encoder.flush()); 
       params.action = "saveAttachment"; 
       params.GRID_PARAM = "fromGrid"; 
       params.selectedFile = encodeURIComponent(selectedAttachment); 
       params.gridName = parentApplication.fieldName; 
       uploadImageService.url = UPLOAD_URL; 
       uploadImageService.send(params); 

      }catch(err:Error){ 
      } 
     } 
+0

은'uploadImageService' 당신의 HTTPService입니까? – CyanAngel

+0

예. HTTPService. – akki

+0

서버 측에서이 요청을 처리하기 위해 무엇을 사용하고 있습니까? – CyanAngel

답변

0

대부분의 웹 서버

GET requests to 8KB (그러나 서버가 매우 수 있습니다) 기본적 HTTPService uses GET method으로 내가 추가하는 것이 좋습니다 것입니다 제한

uploadImageService.send(params);을 호출하기 바로 전에 GET을 통한 POST 방법으로 작동하도록 Java 코드를 조정해야합니다.

+0

그 : akki

+0

아하, 원래의 질문에 대한 수정 사항을 제안했습니다. 그 내용을 포함하는 것이 중요하기 때문에 (예 : 문제. – CyanAngel