Sweta
Sweta

Reputation: 11

File upload in java

Help needed!

I am using this article to upload a file in my project http://www.theserverside.com/news/1365153/HttpClient-and-FileUpload

Using this article I am able to upload the file but the file gets uploaded in my /home/parinati/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/CMTint/

i.e. The eclipse tomcat webapps folder.

But I want my file to be uploaded in my project folder. When I do request.getContextPath() the output is CMTint/ and I want the file to get uploded into CMTint/Uploads/

My upload code is -->

 System.out.println("Content Type ="+request.getContentType());

    DiskFileUpload fu = new DiskFileUpload();
    // If file size exceeds, a FileUploadException will be thrown
    fu.setSizeMax(1000000);

    List fileItems = fu.parseRequest(request);
    Iterator itr = fileItems.iterator();

    while(itr.hasNext()) {
      FileItem fi = (FileItem)itr.next();

      //Check if not form field so as to only handle the file inputs
      //else condition handles the submit button input
      if(!fi.isFormField()) {
        System.out.println("nNAME: "+fi.getName());
        System.out.println("SIZE: "+fi.getSize());
        //System.out.println(fi.getOutputStream().toString());
        File fNew= new File(application.getRealPath("/"), fi.getName());

        System.out.println(fNew.getAbsolutePath());
        fi.write(fNew);
      }
      else {
        System.out.println("Field ="+fi.getFieldName());
      }
    }

Can you suggest what changes are required. Any help will be greatly appreciated.

Thanks in advance Sweta

Upvotes: 1

Views: 6619

Answers (2)

Shawn Vader
Shawn Vader

Reputation: 12385

I never like using the "/", what happens if you change OS. I would do something like this

String filePath = String.format("%s%s%s", request.getContextPath(), File.separatorChar, "Uploads");

You can then add a nice log debug message logging the path being used...

File fNew= new File(filePath);

I would extract that into a method too

Upvotes: 2

weekens
weekens

Reputation: 8292

How's about

File fNew= new File(application.getRealPath("/") + "Uploads", fi.getName());

?

As for the project folder - that's the matter of your Eclipse bundled Tomcat configuration (webapps folder is possibly configurable).

Upvotes: 0

Related Questions