sexta-feira, 28 de setembro de 2007

Upload em Flex

Pessoal, a seguir estou postando um exemplo de upload utilizando Flex, Livecycle e um servlet multipart data. Como podemos ver é algo muito similar ao upload em aplicações baseadas em JSP.
Arquivos principais a serem criados:

  1. upload.mxml
  2. Servlet.java

Aplicação de exemplo:

Código fonte upload.mxml


package papu10;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUpload;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

/**
* Servlet implementation class for Servlet: ServletUpload
*
*/
public class ServletUpload extends javax.servlet.http.HttpServlet implements
javax.servlet.Servlet {
/*
* (non-Java-doc)
*
* @see javax.servlet.http.HttpServlet#HttpServlet()
*/
public ServletUpload() {
super();
}

// Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}

// Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
boolean isMultiPart = FileUpload.isMultipartContent(request);
if (isMultiPart) {
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
//String formulario = "";
try {
List items = upload.parseRequest(request);
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
/*if (item.getFieldName().equals("tipoForm")) {
formulario = item.getString();
}*/
if (!item.isFormField()) {
if (item.getName().length() > 0) {
this.inserirImagem(item);
}
}
}
}
catch (FileUploadException ex) {
ex.printStackTrace();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}

/**
*
*
*
* @param item
* FileItem, representa um arquivo que é enviado pelo formulario
*
* MultiPart/Form-data
*
* @throws IOException
*
*/

private void inserirImagem(FileItem item) throws IOException {

// Pega o diretório /logo dentro do diretório atual de onde a
// aplicação está rodando
String caminho = getServletContext().getRealPath("/upload")
+ "/";
// Cria o diretório caso ele não exista
File diretorio = new File(caminho);
if (!diretorio.exists()){
diretorio.mkdir();
}
// Mandar o arquivo para o diretório informado
String nome = item.getName();
String arq[] = nome.split("\\\\");
for (int i = 0; i < arq.length; i++) {
nome = arq[i];
}
File file = new File(diretorio, nome);
FileOutputStream output = new FileOutputStream(file);
InputStream is = item.getInputStream();
byte[] buffer = new byte[2048];
int nLidos;
while ((nLidos = is.read(buffer)) >= 0) {
output.write(buffer, 0, nLidos);
}
output.flush();
output.close();
}
}


Bibliotecas necessárias para este exemplo:

  1. commons-fileupload-1.2.jar

  2. commons-io-1.3.2.jar


Podem ser encontradas neste link: Apache commons


    Vale lembrar que este exemplo não realiza upload aqui pois não foi ativado um servlet para isto.

    Abs

    Grupo de discussão


    Pessoal, criamos nosso grupo de discussão sobre Flex e web 2.0. Estaremos tirando dúvidas, discutindo soluções e trocando informações a respeito desta plataforma.

    Caso você se interesse em participar, acesse http://groups.google.com/group/flex4you ou envie um email para flex4you@googlegroups.com.

    quinta-feira, 27 de setembro de 2007

    Palestra web 2.0


    Dia 03 de outubro será realizada no auditório da Oracle nossa palestra de web 2.0. Estão convidados todos os desenvolvedores web baseados na plataforma Java EE, webdesginers, gerentes de projeto e todos os envolvidos neste tipo de tecnologia.

    Assuntos abordados:
    1. Usabilidade

    2. Acessibilidade

    3. Conceitos

    4. Frameworks e tecnologias

    Todos os interessados neste surpreendente tema estão convidados a participar, entrada franca.

    by by Spark (sparkbr@sparkbr.com)