Validar upload de arquivos com Command Object
08/06/2012 20:33
<g:form method="post" enctype="multipart/form-data">
<label for="fileUpload">Selecione o local do arquivo:</label>
<input class="input-file" name="fileUpload" id="fileUpload" type="file">
<span class="update">
<g:actionSubmit value="Upload" />
</span>
</g:form>
class UploadArquivoController {
def index (){}
}
class UploadArquivoCommand {
MultipartFile fileUpload
static constraints = {
fileUpload blank: false, nullable: false
}
}
<g:uploadForm>
class UploadArquivoController {
def index() {
render(view:"vai")
}
def vai(UploadArquivoCommand uc) {
// o campo "arquivo" já vai vir preenchido porque está como parâmetro! Só o contentType que não sei como faz pra ser também :(
uc.tipo=request.getFile('arquivo').contentType
uc.validate()
[uc:uc] // na view pode ser algo como <g:renderErrors bean="${uc}" as="list" />
}
}
class UploadArquivoCommand {
byte[] arquivo
String arquivoType
static constraints = {
arquivo(nullable:false)
arquivoType(blank:false, inList:['image/jpeg','image/gif','image/png'])
}
}
class UploadArquivoController {
def index() {
render(view:"vai")
}
def vai(UploadArquivoCommand uc) {
// o campo "arquivo" já vai vir preenchido porque está como parâmetro! Só o contentType que não sei como faz pra ser também :(
uc.tipo=request.getFile('arquivo').contentType
uc.validate()
[uc:uc] // na view pode ser algo como <g:renderErrors bean="${uc}" as="list" />
}
}
class UploadArquivoCommand {
byte[] arquivo
String tipo
static constraints = {
arquivo(nullable:false)
tipo(blank:false, inList:['image/jpeg','image/gif','image/png'])
}
}
<g:renderErrors bean="${uc}" as="list" />
<g:uploadForm action="vai">
<g:field type="file" name="arquivo"/>
<g:submitButton name="s" value="Vai!"/>
</g:uploadForm>
static constraints = {
tipo (blank: false, inList:['text/plain', 'application/octet-stream'])
}
Para se registrar, clique aqui.