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!" );
}
}
}