Upload com Spring MVC

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

Wolmir Cezer Garbin por Wolmir Cezer Garbin - - Java - TUTORIAL

Última atualização em: | 6706 Visualizações

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.


Apoiadores

Publique seu post no Receitas de Código

Aguarde, estamos trabalhando para que você possa publicar sua postagem no Receitas de Código!