FileUpload?

1 resposta
J

Dai galera! Eu tava criando um servlet para fazer upload de arquivos usando o fileupload da jakarta!
Só que eu queria adicionar ao nome do arquivo um código( esse código é o código do usuário ), isso porque eu posso querer colocar dois arquivos iguais no servidor, então eu pegaria o nome original e no começo desse nome eu o concatenaria com o código do usuário! Alguém sabe como eu posso fazer isso? O nome seria assim 0000000123_NomeDoArquivo
Segue o meu código:

import java.io.*;
import java.net.*;
import java.util.*;
import java.util.Iterator;

import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.FileUploadException;

/**
 *
 * @author Jhonatas
 * @version
 */
public class UploadArquivoServlet extends HttpServlet {
    
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
     
        out.println("<html>");
        out.println("<head>");
        out.println("<title>UploadArquivoServlet</title>");
        out.println("</head>");
        out.println("<body>");
        out.println( "<form action='UploadArquivoServlet' method='post' enctype='multipart/form-data'>" );
        out.println( "Seu Nome: <input type='text' name='nome'/><br /> " );
        out.println( "Localizaçao do Arquivo: <input type='file' name='arquivo'><br /><br />" );
        out.println( "<input type='submit' name='submit' value='Enviar'>" );
        out.println( "</form>" );
     
        out.println("</body>");
        out.println("</html>");
     
        out.close();
    }
    
    public void doGet( HttpServletRequest req, HttpServletResponse res ) 
    throws ServletException,IOException {
        processRequest( req, res );
    }
   
    public void doPost( HttpServletRequest req, HttpServletResponse res ) 
    throws ServletException,IOException {
        
        res.setContentType("text/html;charset=UTF-8");
        PrintWriter out = res.getWriter();
        
        if ( FileUpload.isMultipartContent(req)) {
            String usuario = null;
            DiskFileUpload upload = new DiskFileUpload();
     
            upload.setSizeMax( 200000 );
           
            Iterator iterator = null;
            
            try {
                iterator =  upload.parseRequest(req).iterator();
            } catch( FileUploadException exc ) {
                out.println( "Erro processando submissão: " + exc.getMessage() );
                return;
            }
            //Percorre a lista, checando para cada item se ele é um campo de formulario ou o 
            //conteudo de um arquivo que foi baixado!
            while( iterator.hasNext() ) {
                
                FileItem item = ( FileItem ) iterator.next();
                //Checa se campo é um campo simples ou arquivo em upload
                boolean isFormField = item.isFormField();
                
                if ( isFormField ) {
                    //Obtem o nome do usuario
                    if ( item.getFieldName().equalsIgnoreCase( "nome" )) {
                        usuario = item.getString() == null ? "" : " " + item.getString();
                    }
                } else {
                    
                    String nomeArquivo = item.getName();
                    //String novoNome = nomeArquivo.replaceAll( nomeArquivo, "Jhonatas" );
                    
                    //out.println( "<h1> " + novoNome + "</h1>" );
                    
                    
                    String path = null;
                     try {
                         
                        File f = new File( nomeArquivo );
                        
                        path = "C:/" + f.getName(); 
                        //Ele pega o contexto ( endereco ) da aplicaçao no servidor!
                        //path = getServletContext().getRealPath( "/" ) + "WEB-INF/upload/" + f.getName();                        
                        File file =  new File( path );

                        item.write( file );
                        //out.println( "Obrigado " + usuario + "pela submissão<br />"  );
                        out.println( "O arquivo foi gravado em " + path + "." );
                    } catch( Exception exc ) {
                        out.println( "Erro gravando arquivo: " + exc.getMessage() + path + "<br />" +  getServletContext().getRealPath( "/" ) +  item.getName() );
                    }
                }
            } 
        } else {
            out.println( "Erro: Página não pode ser acessada diretamente!" );
        }
    }
}

1 Resposta

M

Opa,

use assim abaixo da delaração você concatena a variável nomeArquivo com o código:

nomeArquivo = codigo+"_" + nomeArquivo;
Criado 15 de abril de 2006
Ultima resposta 15 de abr. de 2006
Respostas 1
Participantes 2