I'm attempting to use org.apache.commons.fileupload in a servlet for the first time and have run into a snag. See below for my doPost() method. If my jsp form passes any parameter to the servlet other than the file, DiskFileUpload.parseRequest() returns an empty list. If only the file is passed, it works splendidly. What am I doing wrong?


From jsp:

<form action="servlet/com.telesoft.web.FileUploadServlet" enctype="multipart/form-data" method="post">

   <%--
   <input type="hidden" name="directory"
   value="<%=request.getParameter("directory")%>">
   --%>
   <input type="file" name="fileName">
   <input type="Submit" name="Submit" value="Upload">

   </form>

From FileUploadServlet.java:

       public void doPost(HttpServletRequest req, HttpServletResponse
   res) throws ServletException, IOException {

//String dirName = req.getParameter("directory");
String dirName = "/tmp";
if (dirName == null)
throw new ServletException("Required parameter
\"directory\" missing");
File directory = new File(dirName);


           // guess we could just let these two issues fall to
   try/catch block...

if (! directory.isDirectory())
throw new ServletException(directory.getName() + " is
not a directory");
if (! directory.canWrite())
throw new ServletException("Cannot write to " +
directory.getName());


           DiskFileUpload fu = new DiskFileUpload();

           // maximum size before a FileUploadException will be thrown
           fu.setSizeMax(1000000);

           // maximum size that will be stored in memory
           fu.setSizeThreshold(4096);

           // the location for saving data that is larger than
   getSizeThreshold()
           fu.setRepositoryPath(directory.getAbsolutePath());

           try {
               List fileItems = fu.parseRequest(req);

               // if any paramters other than file meta data are passed
   to servlet, fileItems.size() == 0

               FileItem fi = (FileItem) fileItems.get(0);

               fi.write(new File(directory,  fi.getName()));

} catch (Exception e) {
e.printStackTrace();


               throw new ServletException(e.getMessage());
           }
       }

--

Regards,

Scott Dudley



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to