Upload com Spring MVC

Postado em por Wolmir Cezer Garbin em Java | 126 Visualizações
Última atualização em:

Nesse post vou mostrar passo a passo como fazer upload de imagens com Spring MVC.

Configurando as dependências no maven

Primeiro precisa adicionar as dependências commons-fileupload e commons-io no pom.xml.

<dependency>
 <groupId>commons-fileupload</groupId>
 <artifactId>commons-fileupload</artifactId>
 <version>${commons-fileupload.version}</version>
 </dependency>
 <dependency>
 <groupId>commons-io</groupId>
 <artifactId>commons-io</artifactId>
 <version>${commons-io.version}</version>
</dependency>

Não esqueça de adicionar as versões corretas de cada biblioteca dentro do properties do pom.xml para as propriedades commons-fileupload.version e commons-io.version.

As versões que utilizei no exemplo foram:

<properties>
 <commons-fileupload.version>1.3.1</commons-fileupload.version>
 <commons-io.version>2.4</commons-io.version>
</properties>

Configure o CommonsMultipartResolver

O próximo passo é configurar o CommonsMultipartResolver no spring MVC, veja como fazer isso dentro do arquivo de configuração do spring se a sua configuração estiver escrita em xml, caso contrario registre o bean dessa maneira:

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
 <!-- one of the properties available; the maximum file size in bytes -->
 <property name="maxUploadSize" value="1000000" />
</bean>

Criando o formulário

A única regra para criar o formulário é que o mesmo contenha multipart/form-data dentro do atributo enctype do form, e seu formulário estará apto a enviar as imagens.

<form action="/meu-projeto/upload" method="post" enctype="multipart/form-data">
 <label for="file">Arquivo</label>
 <input type="file" name="file" />
 <input type="submit" name="submit" value="Upload" />
</form>

Por último em seu controller trate o upload

Crie um método em seu controller que receba a requisição do formulário criado acima e faça um cast da request para MultipartHttpServletRequest e pronto já tem seu arquivo para gravar onde quiser.

@RequestMapping(value = "upload", method = RequestMethod.POST)
public String upload(HttpServletRequest request) {
	MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
	MultipartFile multipartFile = multipartRequest.getFile("file");
	return "redirect:upload-success";
}

Pronto, em quatro passos simples temos o upload pronto para uso. Se tiver dúvidas posta nos comentários que te ajudaremos.

Wolmir Cezer Garbin

Wolmir Cezer Garbin


Sou formado em Desenvolvimento de Sistemas para Internet pela faculdade Mater Dei e Pós graduado em Desenvolvimento de sistemas em Java pela UTFPR. Trabalho a mais de 9 anos com desenvolvimento em Java, Android e Web utilizando as principais tecnologias do mercado. Atuo como professor na faculdade Mater Dei, programador na Garbo Software e criador do Receitas de Código.

Ver mais

Posts relacionados


Code Conference

Esta é uma conferência de código realizada na cidade de Pato Branco para dissiminar tendências e informações sobre programação e novas tecnológias

Veja mais sobre o Code Conference

Publique seu post no Receitas de Código

Agora você pode publicar seu post no Receitas de Código e compartilhar seu conhecimento com muitas pessoas!

Quero publicar