Mentawai Web Framework

File Upload

Mentawai is integrated with Apache Commons FileUpload so you can easily handle file upload through the org.menatawai.filter.FileUploadFilter. Just notice that you must place the commons-fileupload-1.0.jar inside your web applicatoin's /WEB-INF/lib directory.

Check the example bellow:

public class HelloFileUpload extends BaseAction {
	
    public String execute() throws Exception {
        String username = input.getStringValue("username");
        if (username == null || username.trim().equals("")) {
            return ERROR;
        }
        output.setValue("username", username.toUpperCase());
            
        // get a ready-to-use org.apache.commons.fileupload.FileItem
        FileItem item = (FileItem) input.getValue("theFile");
        output.setValue("fileSize", String.valueOf(item.getSize()));
        
        String [] options = input.getStringValues("options");
        output.setValue("options", options);
    
        return SUCCESS;
    }
}
	

And for the filter configuration:

public class ApplicationManager extends org.mentawai.core.ApplicationManager {
	
    public void loadActions() {
        ActionConfig ac = new ActionConfig("/HelloFileUpload", HelloFileUpload.class);
        ac.addConsequence(HelloFileUpload.SUCCESS, new Forward("/hello.jsp"));
        ac.addConsequence(HelloFileUpload.ERROR, new Forward("/username.jsp"));
        addActionConfig(ac);
        
        ac.addFilter(new FileUploadFilter());
    }
}

And for the HTML form, it is just the regular stuff:

<html>
<body>
<h1>Hello Metawai!</h1>
<form action="HelloFileUpload.mtw" method="post" enctype="multipart/form-data"><br>
Enter an username: <input name="username" size="25" /><br>
Enter filename: <input name="theFile" type="file" /><br>
<input name="options" type="checkbox" value="1"> Option 1 <input name="options" type="checkbox" value="2"> Option 2 <br>
<input type="submit" value="Enviar">
</form>
</body>
</html>        

For more information on how to use the FileItem, please refer to the Apache Commons FileUpload API documentation.

You may also click here to download an FileUpload example.