Boa tarde galera. seguinte, estou tentando fazer um servlet de upload, como já fiz antes, porém algo não está funcionando e não consigo achar o problema…
O FileItemStream não retorna o nome do arquivo para upload.
`/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType( "text/html" );
boolean isMultipartContent = ServletFileUpload.isMultipartContent( request );
if ( isMultipartContent )
{
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload( factory );
try
{
Article pla = null;
String urls = "";
FileItemIterator it = upload.getItemIterator( request );
while ( it.hasNext() )
{
FileItemStream fileItem = it.next();
boolean isFormField = fileItem.isFormField();
if ( isFormField )
{
String nome = fileItem.getFieldName();
InputStream is = fileItem.openStream();
byte[] b = new byte[is.available()];
is.read( b );
String value = new String( b );
request.getParameter( "idarq ");
if ( nome.equals( "idarq" ) && value != null && !value.isEmpty() )
{
pla = db.getArticle( Integer.parseInt( value ) );
}
}
else
{
urls = ApplicationUtilities.getInstance().getUniqueName( fileItem.getName() );
String imagePath = ApplicationUtilities.getInstance().makeUniquePath( ApplicationUtilities.Paths.FILES, urls );
File filets = new File( imagePath );
ApplicationUtilities.getInstance().copyFile( fileItem.openStream(), filets );
}
if ( !urls.isEmpty() )
{
if ( pla != null )
{
pla.setImage( urls );
Database.getInstance().editArticle( pla );
}
else
{
urls = ApplicationUtilities.getInstance().getUniqueName( fileItem.getName() );
String imagePath = ApplicationUtilities.getInstance().makeUniquePath( ApplicationUtilities.Paths.FILES, urls );
File filets = new File( imagePath );
filets.delete();
}
}
}
response.sendRedirect( "/articlespane.jsp" );
}
catch( Exception e )
{
e.printStackTrace();
}
}
}`
Um label informa o id do arquivo e outro seleciona a imagem…
Alguém sabe o que pode estar errado?
Valeu!