views:

859

answers:

3

I'm using javazoom for uploading

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException {
    PrintWriter out = null;
    JOptionPane.showMessageDialog(null, "Lets do this");
    try {
        response.setContentType("text/html;charset=UTF-8");
        try {
            MultipartFormDataRequest dataRequest = new MultipartFormDataRequest(request);
            //get uploaded files
            Hashtable files = dataRequest.getFiles();
            if (!files.isEmpty()) {
                UploadFile uploadFile = (UploadFile) files.get("filename");
                byte[] bytes = uploadFile.getData();
                String s = new String(bytes);

the files are always coming as empty Any help please?

Hi.

I then tried doing this with Apache Commons FileUpload:

 protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException {
     PrintWriter out = null;

        try {

            response.setContentType("text/html;charset=UTF-8");
            //MultipartFormDataRequest dataRequest = new MultipartFormDataRequest(request);
            //get uploaded files
            FileItemFactory factory = new DiskFileItemFactory();
            // Create a new file upload handler
            ServletFileUpload upload = new ServletFileUpload(factory);
            List files = null;
            try {
                files = upload.parseRequest(request);
            } catch (FileUploadException ex) {
                Logger.getLogger(ProcessUploadItem.class.getName()).log(Level.SEVERE, null, ex);
            }

and it failed at files = upload.parseRequest(request);

any pointers?

sorry and thank you :)

+1  A: 

Check the form sending the file has enctype="multipart/form-data" defined like here:

<form enctype="multipart/form-data" action="...

Other way the file will never upload according to RFC1867

victor hugo
I wrote this to my other servlet out.println("<form action='ProcessUploadItem' method='post' enctype='multipart/form-data'>"); out.println("<h1>File upload</h1>"); out.println("Select a file:"); out.println("<input type='file' name='filename' />"); out.println("<br />"); out.println("<input type='submit' name='button' value='upload' />"); out.println("</form>");
Lily
A: 

Are you using another framework, like Trinidad or similar? They usually include filters that recover the uploaded files so when the process gets to your server, the request doesn't contain any attached file.

Pere Villega
No, I don't believe that I am :S
Lily
I think skaffman gave you the answer :)
Pere Villega
+3  A: 

I'd recommend using a more popular, high-profile library to do this, such as Apache Commons FileUpload. It's more likely to work, have better docs and have more people around to help you use it.

skaffman
thanks actually I think I will
Lily