Upload com Spring MVC

Postado em por Wolmir Cezer Garbin em Java | 504 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.


Não esqueca de deixar suas dúvidas nos comentários e compartilhar este post.


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

FIQUE POR DENTRO

Receba as novidades todo mês em seu e-mail!

Apoiadores

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