Skip to Main Content

Java EE (Java Enterprise Edition) General Discussion

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

Problems with Apache Commons FileUpload

843842May 4 2008 — edited May 6 2008
I'm completely stymied here. I've been trying to get the Apache Commons FileUpload working with a JBoss 4.2 server, and having no luck whatsoever. The servlet is listed out here:
package com.areteinc.servlets;

import java.io.IOException;
import java.io.PrintWriter;

import java.util.Iterator;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;

public class Filer extends HttpServlet {
	
	private Logger logger = Logger.getLogger(Filer.class);
	
	public Filer() {
		logger.setLevel(Level.DEBUG);
	}
	
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		logger.debug("Serving up a GET page...");
		PrintWriter writer = resp.getWriter();
		StringBuffer response = new StringBuffer();
		response.append("<HTML><HEAD><TITLE>JENA File Uploader</TITLE></HEAD><BODY>");
		response.append("<FORM action=\"Filer\" method=\"POST\" enctype=\"multipart/form-data\">");
		response.append("Upload file: <input type=\"file\" name=\"file1\"/><br>");
		response.append("Upload file: <input type=\"file\" name=\"file2\"/><br>");
		response.append("<input type=submit value=\"Start upload\">");
		response.append("</BODY>");
		writer.println(response);
	}
	
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// First see if someone is uploading more than one file at a time...
		boolean isMultipart = ServletFileUpload.isMultipartContent(req);
		
		logger.debug("Received a POST request.  Multipart is flagged as " + isMultipart);
		
		// Create a factory for disk-based file items
		FileItemFactory factory = new DiskFileItemFactory();

		// Create a new file upload handler
		ServletFileUpload upload = new ServletFileUpload(factory);

		// Parse the request
		try {
			List<FileItem> items = upload.parseRequest(req);
			Iterator itr = items.iterator();
			logger.debug("Size of upload is " + items.size() + " items.");
			while(itr.hasNext()) {
				FileItem item = (FileItem) itr.next();
				logger.debug("Filename is " + item.getName());
			}
		} catch (FileUploadException e) {
			e.printStackTrace();
		}
	}
}
When run, I hit it with a get operation, and get the form. When I put in 2 forms (in reality, all i want to do is use one, but I'm tinkering), I see nothing in items list...

-----------
Run, with 2 files selected to upload:
13:50:15,421 DEBUG [Filer] Received a POST request. Multipart is flagged as true
13:50:15,421 DEBUG [Filer] Size of upload is 0 items.

I've tried variation after variation after variation, and it jst doesn't work. I'm using commons-fileupload-1.2.1.

Help! :)

Comments

Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Jun 3 2008
Added on May 4 2008
4 comments
650 views