English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Exemplo de upload e download de arquivos no SpringMVC

No ambiente javaEE do eclipse: importe os pacotes necessários

Arquivo de configuração web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instância 
xmlns="http://java.sun.com/xml/ns/javaee" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
id="WebApp_ID" versão="2.5">
   <!-- Configuração do DispatcherServlet do SpringMVC -->
  <servlet>
    <servlet-nome>springDispatcherServlet</servlet-nome>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-classe>
    <init-param>
      <param-name>contextConfigLocation</param-nome>
      <param-value>classpath:springmvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapeamento>
    <servlet-nome>springDispatcherServlet</servlet-nome>
    <url-padrão>/</url-padrão>
  </servlet-mapeamento>
  <!-- Configuração do FiltroHttpMethodOculto: Converta solicitações POST em DELETE e PUT -->
   <filtro>
     <filtro-nome>FiltroHttpMethodOculto</filtro-nome>
     <filtro-classe>org.springframework.web.filter.HiddenHttpMethodFilter</filtro-classe>
   </filtro>
   <filtro-mapeamento>
     <filtro-nome>FiltroHttpMethodOculto</filtro-nome>
     <url-padrão>/*</url-padrão>
   </filtro-mapeamento>
</web-app> 

configuração do bean Spring springmvc.xml;

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instância
  xmlns:context="http://www.springframework.org/schema/context"
  xmlns:mvc="http://www.springframework.org/schema/mvc"
  xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
  <!-- Configuração de pacotes escaneados automaticamente -->
  <context:component-scan base-package="com.atguigu.springmvc"></context:component-scan>
  <!-- Configuração do analisador de visualizações -->
  <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/visualizações/></property>
    <property name="suffix" value=".jsp"></property>
  </bean>
  <!-- 
    padrão-servlet-handler será definido no contexto SpringMVC como um DefaultServletHttpRequestHandler;
    Ele verificará as solicitações que entram no DispatcherServlet, se encontrar solicitações que não foram mapeadas, transferirá a solicitação para o Servlet padrão do servidor WEB aplicativo 
    Processamento do Servlet. Se não for uma solicitação de recursos estáticos, o DispatcherServlet continuará a processar
    O nome padrão do Servlet de aplicativos WEB é geralmente default.
    Se o nome do Servlet padrão do servidor WEB que você está usando não for default, você precisa passar por default-servlet-A propriedade name é explicitamente especificada
  -->
  <mvc:default-servlet-handler/>
  <!-- Normalmente, configuramos este <mvc:annotation-driven ></mvc:annotation-driven>,
  Devido ao... a implementação da requestmapping não é possível, usamos isso, o que fará com que a requestmapping seja implementada necessariamente
  -->
  <mvc:annotation-driven ></mvc:annotation-driven> 
  <!-- Configuração do MultipartResolver, ou seja, configuração das propriedades de upload de arquivos-->
   <bean id="multipartResolver" 
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <!-- Codificação de caracteres padrão -->
    <property name="defaultEncoding" value="UTF-8></property> 
    <!-- Tamanho do arquivo a ser carregado, tamanho máximo de upload-->
    <property name="maxUploadSize" value="1024000"></property>
   </bean>
 </beans> 

 Métodos da classe handler: métodos de upload e download de arquivos

 @Controller
public class SpringMVCTest {
  @Autowired
  private EmployeeDao employeeDao;
  //Implementação do download de arquivos
  //É necessário esclarecer que o upload e o download de arquivos não requerem outras configurações
  @RequestMapping("testResponseEntity")
  public ResponseEntity<byte[]> testResponseEntity(HttpSession session) throws IOException{
    byte[] body=null;
    ServletContext servletContext=session.getServletContext();
    ///files/abc.txt: o endereço do arquivo a ser baixado
    InputStream in=servletContext.getResourceAsStream("/files/abc.txt");
    body=new byte[in.available()];
    in.read(body);
    HttpHeaders headers=new HttpHeaders();
    //o nome da cabeça de resposta e o valor da cabeça de resposta
    headers.add("Content-Disposition", "attachment;filename=abc.txt");
    HttpStatus statusCode=HttpStatus.OK;
    ResponseEntity<byte[]> response=new ResponseEntity<byte[]>(body, headers, statusCode);
    return response;
  } 
  //upload de arquivo,
     @RequestMapping("/testFileUpload)
     public String testFileUpload(@RequestParam("desc") String desc,
      @RequestParam("file") MultipartFile file) throws IOException{
      System.out.println("desc:"+desc);
      System.out.println("OriginalFilename"+file.getOriginalFilename());
      System.out.println("InputStream"+file.getInputStream());
      return "success";
   }
 } 

página JSP: index.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html
<head
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insira o título aqui</title>
</head>
<body
  <center> 
  <!-- fórmula de upload de arquivo -->
   <form action="testFileUpload" method="post" enctype="multipart/form-data">
    Arquivo:<input type="file" name="file"/>
    Desc:<input type="text" name="desc"/>
    <input type="submit" value="Submit"/>
   </form>
   <br><br>
  <!-- Download do arquivo -->
  <a href="testResponseEntity" rel="external nofollow" >Test ResponseEntity</a>
  </center>
</body>
</html> 

success.jsp página: exibe o upload de arquivo bem-sucedido

 <%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html
<head
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insira o título aqui</title>
</head>
<body
  <h3>Página de sucesso</h3>
</body>
</html>

Isso é tudo o que há no artigo. Esperamos que isso ajude no seu aprendizado e que você apoie o tutorial Yell.

Declaração: o conteúdo deste artigo é de origem na internet, pertencente ao respectivo proprietário. O conteúdo é contribuído e carregado voluntariamente pelos usuários da internet. Este site não possui direitos de propriedade, não foi editado manualmente e não assume nenhuma responsabilidade legal. Se você encontrar conteúdo suspeito de violação de direitos autorais, por favor, envie um e-mail para: notice#oldtoolbag.com (ao enviar e-mail, substitua # por @ para denunciar e forneça provas relevantes. Caso seja confirmado, o site deletará imediatamente o conteúdo suspeito de violação de direitos autorais.)

Você também pode gostar