import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; import com.oreilly.servlet.MultipartRequest; public class UploadTest extends HttpServlet { public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/html"); PrintWriter out = res.getWriter(); try { // Blindly take it on faith this is a multipart/form-data request // Construct a MultipartRequest to help read the information. // Pass in the request, a directory to save files to, and the // maximum POST size we should attempt to handle. // Here we (rudely) write to /tmp and impose a 50 K limit. MultipartRequest multi = new MultipartRequest(req, "/tmp", 50 *1024 * 1024, new com.oreilly.servlet.multipart.DefaultFileRenamePolicy()); out.println(""); out.println("UploadTest"); out.println(""); out.println("

UploadTest

"); // Print the parameters we received out.println("

Params:

"); out.println("
");
      Enumeration params = multi.getParameterNames();
      while (params.hasMoreElements()) {
        String name = (String)params.nextElement();
        String value = multi.getParameter(name);
        out.println(name + " = " + value);
      }
      out.println("
"); // Show which files we received out.println("

Files:

"); out.println("
");
      Enumeration files = multi.getFileNames();
      while (files.hasMoreElements()) {
        String name = (String)files.nextElement();
        String filename = multi.getFilesystemName(name);
        String original = multi.getOriginalFileName(name);
        String type = multi.getContentType(name);
        File f = multi.getFile(name);
        out.println("name: " + name);
        out.println("filename: " + filename);
        if (filename != null && !filename.equals(original)) {
          out.println("original file name: " + original);
        }
        out.println("type: " + type);
        if (f != null) {
          out.println("length: " + f.length());
        }
        out.println();
      }
      out.println("
"); } catch (Exception e) { out.println("
");
      e.printStackTrace(out);
      out.println("
"); } out.println(""); } }