Hi Sylvain ... I post the code I'm using... Tell me what you think about it ...
import java.io.File; import java.io.FileInputStream; import java.util.Map; import org.apache.avalon.framework.logger.AbstractLogEnabled; import org.apache.avalon.framework.parameters.Parameters; import org.apache.avalon.framework.thread.ThreadSafe; import org.apache.cocoon.acting.Action; import org.apache.cocoon.environment.ObjectModelHelper; import org.apache.cocoon.environment.Redirector; import org.apache.cocoon.environment.Request; import org.apache.cocoon.environment.SourceResolver; import org.apache.cocoon.servlet.multipart.Part; import org.apache.cocoon.servlet.multipart.PartOnDisk;
public class FileUploadAction extends AbstractLogEnabled implements Action, ThreadSafe {
public Map act(Redirector redirector, SourceResolver resolver, Map objectModel, String source, Parameters par) throws Exception {
Request request = ObjectModelHelper.getRequest(objectModel);
Part filePart = (PartOnDisk) request.get("uploadfile");
if (filePart != null) {
getLogger().debug("Uploaded file = " + filePart.getFileName());
} else {
getLogger().debug("File not found");
}
return java.util.Collections.EMPTY_MAP;
}
}
In sitemap:
<map:actions> <map:action name="fileupload" src="edu.uoc.riudavets.FileUploadAction"/> </map:actions>
Pipeline:
<map:pipeline> <map:match pattern="upload"> <map:act type="fileupload"> <map:generate src="XML/success.xml"/> <map:transform src="XSL/success.xsl"/> <map:serialize type="html"/> </map:act> <map:generate src="XML/fail.xml"/> <map:transform src="XSL/fail.xsl"/> <map:serialize type="html"/> </map:match> </map:pipeline>
Form:
<form name="f1" action="upload" method="post"> <input type="file" name="uploadfile"/> <input type="submit" value="Upload"/> </form>
I have been trying to make it works during some weeks .. I don't know what more I can do !!!!
Please, some help !!! <:-(
Please, read carefully my example: you have to do something with the uploaded content!!!
InputStream stream = part.getInputStream(); // use stream here...
The Part objects represents a temporary storage that is trashed when the request processing is finished. So you *must* move the uploaded data somewhere else in the action.
Sylvain
-- Sylvain Wallez Anyware Technologies http://www.apache.org/~sylvain http://www.anyware-tech.com { XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects } Orixo, the opensource XML business alliance - http://www.orixo.com
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
