commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Victor Kam" <vch...@hotmail.com>
Subject Re: Fileupload Help! Urgent!
Date Mon, 16 Jun 2003 02:54:06 GMT
Thank you very much Will for your quick response, really appreciate you 
help.  =)  I actually figured out yesterday that I can retrieve the uploaded 
file from the BaseForm subclass I defined for my form.  Basically, I can 
just get the file using the form.getUploadFile() (which is already in the 
code), and from there I can just use the FormFile interface to work with the 
file.   =D......gees, that was stupid of me......

Anyway, thx alot for you help.

Victor


>From: "Will Stranathan" <wstranathan@hotmail.com>
>Reply-To: "Jakarta Commons Users List" <commons-user@jakarta.apache.org>
>To: commons-user@jakarta.apache.org
>Subject: Re: Fileupload Help! Urgent!
>Date: Sun, 15 Jun 2003 09:04:01 -0500
>
>The request stream for a multipart/form-data can only be read once - by the 
>time Struts decides what Action to execute, goes through setting up the 
>Form and validating, it's actually already read the request.  Use a 
>formBean that has accessors/mutators for 
>org.apache.struts.upload.FormFile's, and pass the formBean to your action.
>
>See the struts-upload webapp for a very good example.
>
>The short answer is - you don't HAVE to do all the junk below when you're 
>using Struts - the smart developers for Struts did all that junk for you so 
>you can just use your file directly.
>
>Will
>
>
>>From: "Victor Kam" <vchkam@hotmail.com>
>>Reply-To: "Jakarta Commons Users List" <commons-user@jakarta.apache.org>
>>To: commons-user@jakarta.apache.org
>>Subject: Fileupload Help!  Urgent!
>>Date: Sun, 15 Jun 2003 14:51:42 +0800
>>
>>Hi all,
>>
>>
>>I am trying to use the commons file upload package to handle file upload 
>>request in my application, yet I seemed to always get an empty List from 
>>the parseRequest function of the DiskFileUpload class.  I am handling file 
>>uploads in a class name uploadAction, which extends from 
>>org.apache.struts.action.Action class.  I read from a previous thread 
>>(http://www.mail-archive.com/commons-user@jakarta.apache.org/msg02231.html) 
>>that someone is having the similar problem, but maybe because I am new to 
>>struts, etc. I do not seem to understand what to do about the situation.  
>>Is it inappropriate to implement the fileupload in a Action subclass!?  If 
>>so, how should I go about solving the problem using strut's 
>>ActionServlet/Action model and file upload packages together!?   The 
>>following is my uploadAction class.
>>
>>package com.bat.upload.action;
>>import com.bat.common.action.BaseAction;
>>import com.bat.upload.form.UploadForm;
>>import java.io.IOException;
>>import java.io.PrintStream;
>>import java.util.ArrayList;
>>import javax.servlet.ServletException;
>>import javax.servlet.http.HttpServletRequest;
>>import javax.servlet.http.HttpServletResponse;
>>import org.apache.struts.action.*;
>>import org.apache.commons.fileupload.DiskFileUpload;
>>import org.apache.commons.fileupload.FileItem;
>>import org.apache.commons.fileupload.FileUploadException;
>>import java.util.List;
>>import java.util.Iterator;
>>import java.io.File;
>>public class UploadAction extends BaseAction
>>{
>>    public UploadAction()
>>    {
>>    }
>>    public ActionForward perform(ActionMapping mapping, ActionForm f, 
>>HttpServletRequest request, HttpServletResponse response)
>>        throws IOException, ServletException
>>    {
>>  System.out.println("UploadAction.perform entered.");
>>  UploadForm form = (UploadForm) f;
>>  if(form == null)
>>    System.out.println("NULL form");
>>  else
>>  {
>>   if(form.getUploadFile() != null)
>>    System.out.println("filename : %" + form.getUploadFile().getFileName() 
>>+ "%");
>>  }
>>  if(form.getUploadFile() != null)
>>  {
>>    try
>>       {
>>    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("/tmp");
>>    List fileItems = fu.parseRequest(request);
>>    // assume we know there are two files. The first file is a small
>>    // text file, the second is unknown and is written to a file on
>>    // the server
>>    System.out.println("num of fileItems: " + fileItems.size());
>>    Iterator i = fileItems.iterator();
>>    String comment = ((FileItem)i.next()).getString();
>>    System.out.println("comment: " + comment);
>>    FileItem fi = (FileItem)i.next();
>>    // filename on the client
>>    String fileName = fi.getName();
>>    System.out.println("file to write: " + 
>>getServlet().getServletContext().getRealPath("/SOP")+ "/" + fileName + 
>>"%");
>>    // write the file
>>    File tmpFile = new 
>>File(getServlet().getServletContext().getRealPath("/SOP")+ "/" + 
>>fileName);
>>    fi.write(tmpFile);
>>    }
>>    catch(FileUploadException fue)
>>    {
>>      throw new ServletException("FileUploadError: " + fue.getMessage(), 
>>fue);
>>    }
>>    catch(Exception e)
>>    {
>>      throw new ServletException("FileWriteError", e);
>>    }
>>  }
>>  ActionForward forwardResult = new ActionForward(mapping.getInput());
>>  return forwardResult;
>>    }
>>}
>>
>>My form is declared as
>><html:form action="/upload" method="POST" enctype="multipart/form-data">
>>and the isMultipartContent() also returns true, problem is I always get an 
>>empty fileItem list returned from parseRequest().  Any suggestions to this 
>>problem would be strongly appreciated.
>>
>>
>>Thanks alot in advance,
>>
>>Victor
>>
>>_________________________________________________________________
>>Get 10Mb extra storage for MSN Hotmail. Subscribe Now!  
>>http://join.msn.com/?pgmarket=en-hk
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: commons-user-help@jakarta.apache.org
>>
>
>_________________________________________________________________
>Help STOP SPAM with the new MSN 8 and get 2 months FREE*  
>http://join.msn.com/?page=features/junkmail
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: commons-user-help@jakarta.apache.org
>

_________________________________________________________________
No masks required! Use MSN Messenger to chat with friends and family. 
http://go.msnserver.com/HK/25382.asp


Mime
View raw message