Mentawai Web Framework

Upload de Arquivo

O Mentawai possui uma fácil integração com o módulo Apache Commons FileUpload, permitindo que você lide facilmente com upload de arquivos utilizando a classe org.menatawai.filter.FileUploadFilter. Note que você precisa colocar o arquivo commons-fileupload-1.0.jar dentro da pasta /WEB-INF/lib de sua aplicação web, para poder utilizar esse módulo do Jakarta Commons.

Veja exemplo abaixo:

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;
    }
}
	

E agora para configurar do filtro, tudo que você precisa fazer é:

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());
    }
}

No Form HTML, colocamos as mesmas coisas de sempre:

<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>        

Para mais informações sobre como usar a class FileItem, leia API do Apache Commons FileUpload.

Clique aqui para baixar um exemplo de Upload de Arquivo.