I should have thought of that before. Thanks for your help !!!!!!!! I've just wasted 24 hours
on this.... If I was running linux I could have ran a packet capture but am on crappy
win 2000 box.
--B
Martin Cooper wrote:
It's not a Struts bug, and it's not even a Struts-related problem. Any time you need to upload files, you must use a POST request with an 'enctype' of "multipart/form-data". Your form element should look like this:
<html:form action="/imageUpload.do" type="imageUploadForm" enctype="multipart/form-data">
-- Martin Cooper
"Bryan Hunt" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
prefix="bean"%>Hi there list, I have been trying to get the most simple file upload example working with and have been receiving a strange error message that I just can't seem to shake.
Here is the basics of my action form
snip=
public class ImageUploadForm extends ActionForm {
// --------------------------------------------------------- Instance Variables
/** imageFile property */
protected FormFile file;
// --------------------------------------------------------- Methods
public ActionErrors validate( ActionMapping mapping, HttpServletRequest request) {
if(file == null){ System.out.println("file is empty"); } return null; }
public FormFile getFile() { return file; }
public void setFile(FormFile file) { this.file = file; } =snip
Here is the basics of the action snip= public ActionForward execute( blah) { System.out.println("at least i managed to get called"); throw new UnsupportedOperationException("Generated method 'execute(...)' not implemented."); } =snip
Here is the basics from my struts config file snip= <form-bean name="imageUploadForm" type="ie.jestate.struts.form.ImageUploadForm"> <form-property name="file" type="org.apache.struts.upload.FormFile" /> </form-bean> <action attribute="imageUploadForm" input="/form/imageUpload.jsp" name="imageUploadForm" path="/imageUpload" type="ie.jestate.struts.action.ImageUploadAction" scope="request" validate="true" > <forward name="imageuploadsuccess" path="/form/imageUpload.jsp" /> </action> =snip
Here is the jsp file
snip=
<%@ page language="java"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean"
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html"prefix="html"%>
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.j<html> <head> <title>JSP for imageUploadForm form</title> </head> <body> <DEFANGED_html:form action="/imageUpload.do" type="imageUploadForm" > File : <DEFANGED_html:file property="file"/> <DEFANGED_html:submit/> </DEFANGED_html:form> <body> </html> =snip
And here is the abreviated version of the error message snip=
*exception*
javax.servlet.ServletException: BeanUtils.populate org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1254)
ava:821)*
cause mère*
java.lang.IllegalArgumentException: argument type mismatch sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) =snip
I have tried changing the type to text and the type to String in the form and that works but use this FormFile class and everything seems to go fubar.
It never even gets to call the action , instead it generates this error message , but the setters and getters are right and the variable is public, this only happens with the FormFile. All the struts stuff is in my classpath as is commons-fileupload-1.0.jar.
Anyone got any idea what the hell I'm doing wrong ... I'm starting to suspect this could be a struts bug cause everything looks straightforward enough.
--B
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]