Pessoal,

Sigo na minha busca por uma solução para realizar uplod com java + flex.
Achei um exemplo de servlet porém porem o flex está retornando um erro:

Error #2044: IOErrorEvent: não manipulado. text=Error #2038: Erro do arquivo
de E/S.
 at com.fozci.sicorc.views::TelaImportarRazao/init()[C:\Documents and
Settings\...\workspace\Sicorc\flex_src\com\...\sicorc\views\TelaImportarRazao.mxml:16]
 at
com.fozci.sicorc.views::TelaImportarRazao/___TelaImportarRazao_Application1_creationComplete()[C:\Documents
and
Settings\...\workspace\Sicorc\flex_src\com\...\sicorc\views\TelaImportarRazao.mxml:7]
 at flash.events::EventDispatcher/dispatchEventFunction()
 at flash.events::EventDispatcher/dispatchEvent()
 at
mx.core::UIComponent/dispatchEvent()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\UIComponent.as:12528]
 at mx.core::UIComponent/set
initialized()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\UIComponent.as:1627]
 at
mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\4.x\frameworks\projects\framework\src\mx\managers\LayoutManager.as:759]
 at
mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:\dev\4.x\frameworks\projects\framework\src\mx\managers\LayoutManager.as:1072]

Segue o Servlet e o mxml:

Servlet:
*

import* java.io.IOException;
*

import* java.util.Iterator;
*

import* java.util.List;

*

import* javax.servlet.ServletException;
*

import* javax.servlet.http.HttpServlet;
*

import* javax.servlet.http.HttpServletRequest;
*

import* javax.servlet.http.HttpServletResponse;

*

import* org.apache.commons.fileupload.FileItem;
*

import* org.apache.commons.fileupload.disk.DiskFileItemFactory;
*

import* org.apache.commons.fileupload.servlet.ServletFileUpload;

 *

public* *class* FileUploadServlet *extends* HttpServlet{

*private* String uploadpatch = "/teste/";

*public* *static* *final* *int* *maxPostSize* = 100*1024*1024;

*

public* FileUploadServlet (){

*super*();

}

*protected* *void* processRequest(HttpServletRequest request,
HttpServletResponse response) *throws* Exception{

 *try* {

response.setContentType("text/html;charset=UTF-8");

DiskFileItemFactory factory = *new* DiskFileItemFactory();

factory.setSizeThreshold(4096);

ServletFileUpload upload = *new* ServletFileUpload(factory);

upload.setFileSizeMax(*maxPostSize*);

List<FileItem> fileItens= upload.parseRequest(request);

Iterator<FileItem> iter = fileItens.iterator();

*while* (iter.hasNext()){

FileItem item = iter.next();

*if*(item.isFormField()){

item.write(*new* File(uploadpatch + item.getName()));

}

}

} *catch* (Exception e) {

*throw* e;

}

*protected* *void* doGet(HttpServletRequest request, HttpServletResponse
response)

*throws* ServletException, IOException{

*try* {

processRequest(request, response);

} *catch* (Exception e) {

e.printStackTrace();

}

}

*protected* *void* doPost(HttpServletRequest request, HttpServletResponse
response)

*throws* ServletException, IOException{

*try* {

processRequest(request, response);

} *catch* (Exception e) {

e.printStackTrace();

}

}

*public* *void* destroy(){

*super*.destroy();

}

}

}



Segue o mxml:

<?xml version="1.0" encoding="utf-8"?>

<!--
http://blog.flexexamples.com/2007/09/21/uploading-files-in-flex-using-the-filereference-class/-->

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";

layout="vertical"

verticalAlign="middle"

backgroundColor="white"

creationComplete="init();">

<mx:Script>

<![CDATA[

*private* *var* fileRef:FileReference;

*var* request:URLRequest = *new* URLRequest (*"
http://localhost:8080/Sicorc/FileUploadServlet"*);

*private* *function* init():*void* {

fileRef = *new* FileReference();

fileRef.addEventListener(Event.SELECT, fileRef_select);

fileRef.addEventListener(ProgressEvent.PROGRESS, fileRef_progress);

fileRef.addEventListener(Event.COMPLETE, fileRef_complete);

}

*private* *function* browseAndUpload():*void* {

fileRef.browse();

message.text = *""*;

}

*private* *function* fileRef_select(evt:Event):*void* {

*try* {

message.text = *"size (bytes): "* + numberFormatter.format(fileRef.size);

fileRef.upload(request);

} *catch* (err:Error) {

message.text = *"ERROR: zero-byte file"*;

}

}

*private* *function* fileRef_progress(evt:ProgressEvent):*void* {

progressBar.visible = *true*;

}

*private* *function* fileRef_complete(evt:Event):*void* {

message.text += *" (complete)"*;

progressBar.visible = *false*;

}

]]>

</mx:Script>

<mx:NumberFormatter id="numberFormatter" />

<mx:Button label="Upload file"

click="browseAndUpload();" />

<mx:Label id="message" />

<mx:ProgressBar id="progressBar"

indeterminate="true"

visible="false" />

</mx:Application>

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a