Cargas de archivos Tomcat

I am trying to upload file to Tomcat server, I am using servlet and JSP. its about the user select file from his PC then press submit to upload the selected file.

Furthermore, when I press at upload button I got error in try section in my code that response with the exception which is already defined. it catch the exception which is said Exception in upload file.

aquí está mi código de servlet

@WebServlet("/UploadDownloadFileServlet")
public class UploadDownloadFileServlet extends HttpServlet {

private static final long serialVersionUID = 1L;
private ServletFileUpload uploader = null;

@Override
public void init() throws ServletException{
    DiskFileItemFactory fileFactory = new DiskFileItemFactory();
    File filesDir = (File) getServletContext().getAttribute("FILES_DIR_FILE");
    fileFactory.setRepository(filesDir);
    this.uploader = new ServletFileUpload(fileFactory);
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String fileName = request.getParameter("fileName");
    if(fileName == null || fileName.equals(""))
    {
        throw new ServletException("File Name can't be null or empty");
    }
    File file = new File(request.getServletContext().getAttribute("FILES_DIR")+File.separator+fileName);
    if(!file.exists())
    {
        throw new ServletException("File doesn't exists on server.");
    }

    System.out.println("File location on server side::"+file.getAbsolutePath());
    ServletContext ctx = getServletContext();
    InputStream fis = new FileInputStream(file);
    String mimeType = ctx.getMimeType(file.getAbsolutePath());
    response.setContentType(mimeType != null? mimeType:"application/octet-stream");
    response.setContentLength((int) file.length());
    response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");

    ServletOutputStream os = response.getOutputStream();
    byte[] bufferData = new byte[1024];
    int read=0;
    while((read = fis.read(bufferData))!= -1){
        os.write(bufferData, 0, read);
    }
    os.flush();
    os.close();
    fis.close();
    System.out.println("File downloaded at the client successfuly");
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    if(!ServletFileUpload.isMultipartContent(request))
    {
        throw new ServletException("Content type is not multipart/form-data");
    }

    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.write("<html><head></head><body>");
    try {
        List<FileItem> fileItemsList = uploader.parseRequest(request);
        Iterator<FileItem> fileItemsIterator = fileItemsList.iterator();
        while(fileItemsIterator.hasNext()){
            FileItem fileItem = fileItemsIterator.next();
            System.out.println("FieldName="+fileItem.getFieldName());
            System.out.println("FileName="+fileItem.getName());
            System.out.println("ContentType="+fileItem.getContentType());
            System.out.println("Size in bytes="+fileItem.getSize());
            System.out.println("Size in Mbytes="+fileItem.getSize()/1048576);
            System.out.println("Every thing until now run good");

            File file = new File(request.getServletContext().getAttribute("FILES_DIR")+File.separator+fileItem.getName());
            System.out.println("Absolute Path at server="+file.getAbsolutePath());
            fileItem.write(file);
            out.write("File "+fileItem.getName()+ " uploaded successfully.");
            out.write("<br>");
            out.write("<a href=\"UploadDownloadFileServlet?fileName="+fileItem.getName()+"\">Download "+fileItem.getName()+"</a>");
        }
    } catch (FileUploadException e) {
        out.write("Exception in uploading File");
    } catch (Exception e) {
        out.write("Exception in uploading file");
    }
    out.write("</body></html>");
}

}

preguntado el 28 de mayo de 14 a las 14:05

¿Cuál fue la excepción? -

the ecxception is "Exception in uploading file" -

No, that's just what your code outputs. What is the actual class of the exception, and what stack trace does it provide? -

0 Respuestas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.