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

Beispiel zur Umsetzung des Uploads und Herunterladens von Dateien im SpringMVC-Framework

Im JavaEE-Umfeld von eclipse: Importieren Sie die erforderlichen Bibliotheken

web.xml-Konfigurationsdatei:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
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" version="2.5">
   <!-- Konfiguration des SpringMVC DispatcherServlet -->
  <servlet>
    <servlet-name>springDispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:springmvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>springDispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
  <!-- Konfiguration von HiddenHttpMethodFilter: Konvertiert POST-Anfragen in DELETE, PUT-Anfragen -->
   <filter>
     <filter-name>HiddenHttpMethodFilter</filter-name>
     <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
   </filter>
   <filter-mapping>
     <filter-name>HiddenHttpMethodFilter</filter-name>
     <url-pattern>/*</url-pattern>
   </filter-mapping>
</web-app> 

Konfigurationsdatei des Beans von Spring für die Konfiguration 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-instance"
  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">
  <!-- Konfiguration der automatisch gescannten Pakete -->
  <context:component-scan base-package="com.atguigu.springmvc"></context:component-scan>
  <!-- Konfiguration des View-Resolvers -->
  <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/></property>
    <property name="suffix" value=".jsp"></property>
  </bean>
  <!-- 
    default-servlet-handler wird im SpringMVC-Kontext einen DefaultServletHttpRequestHandler definieren,
    Es führt eine Überprüfung durch, ob die Anfragen, die in den DispatcherServlet eintreffen, zugeordnet sind, und leitet die nicht zugeordneten Anfragen an den Standard Servlet des WEB-Anwendungsservers weiter. 
    Servlet-Verarbeitung. Wenn es sich nicht um eine Anfrage nach statischen Ressourcen handelt, wird die Anfrage vom DispatcherServlet weiterverarbeitet
    Der Name des Default Servlets der meisten WEB-Anwendungsserver ist in der Regel default.
    Wenn der Name des Default Servlets des verwendeten WEB Servers nicht default ist, muss durch default-servlet-Das name-Attribut wird explizit angegeben
  -->
  <mvc:default-servlet-handler/>
  <!-- Es wird in der Regel diese <mvc:annotation konfiguriert-driven ></mvc:annotation-driven> ,
  Da die requestmapping-Anfragen nicht implementiert werden können, wird diese verwendet, um sicherzustellen, dass die requestmapping-Anfragen unbedingt implementiert werden
  -->
  <mvc:annotation-driven ></mvc:annotation-driven> 
  <!-- Konfigurieren Sie MultipartResolver, d.h. konfigurieren Sie die Eigenschaften der Dateiupload-Funktion-->
   <bean id="multipartResolver" 
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <!-- Standardzeichensatz -->
    <property name="defaultEncoding" value="UTF-8></property> 
    <!-- Die Größe der hochgeladenen Datei, maximale Größe der hochladbaren Datei-->
    <property name="maxUploadSize" value="1024000"></property>
   </bean>
 </beans> 

 Methoden der Handler-Klasse: Methoden zum Hochladen und Herunterladen von Dateien implementieren

 @Controller
public class SpringMVCTest {
  @Autowired
  private EmployeeDao employeeDao;
  //Um die Dateidownloads zu realisieren
  //Es muss darauf hingewiesen werden, dass die Upload- und Download-Funktion der Dateien keine zusätzlichen Konfigurationen erfordert
  @RequestMapping("testResponseEntity")
  public ResponseEntity<byte[]> testResponseEntity(HttpSession session) throws IOException{
    byte[] body=null;
    ServletContext servletContext=session.getServletContext();
    ///files/abc.txt: Adresse der zu herunterladenden Datei
    InputStream in=servletContext.getResourceAsStream("/files/abc.txt");
    body=new byte[in.available()];
    in.read(body);
    HttpHeaders headers=new HttpHeaders();
    //Antwortkopf-Name und Wert
    headers.add("Content-Disposition", "attachment;filename=abc.txt");
    HttpStatus statusCode=HttpStatus.OK;
    ResponseEntity<byte[]> response=new ResponseEntity<byte[]>(body, headers, statusCode);
    return response;
  } 
  //Datei-Upload,
     @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";
   }
 } 

JSP-Seite: 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>Einen Titel hier einfügen</title>
</head>
<body
  <center> 
  <!-- Datei-Upload-Formular -->
   <form action="testFileUpload" method="post" enctype="multipart/form-data">
    Datei:<input type="file" name="file"/>
    Beschreibung:<input type="text" name="desc"/>
    <input type="submit" value="Submit"/>
   </form>
   <br><br>
  <!-- Dateidownload -->
  <a href="testResponseEntity" rel="external nofollow" >Test ResponseEntity</a>
  </center>
</body>
</html> 

success.jsp Seite: Datei hochladen erfolgreich

 <%@ 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>Einen Titel hier einfügen</title>
</head>
<body
  <h3>Erfolgsseite</h3>
</body>
</html>

Das ist der gesamte Inhalt dieses Artikels. Ich hoffe, er hilft Ihnen bei Ihrem Lernen und ich hoffe, dass Sie die Anleitung unterstützt.

Erklärung: Der Inhalt dieses Artikels wurde aus dem Internet übernommen und gehört dem Urheberrechtlichem Eigentümer. Der Inhalt wurde von Internetnutzern freiwillig beigesteuert und hochgeladen. Diese Website besitzt keine Eigentumsrechte und hat den Inhalt nicht manuell bearbeitet. Sie übernimmt auch keine rechtlichen Verantwortlichkeiten. Wenn Sie Inhalte mit涉嫌版权发现, senden Sie bitte eine E-Mail an: notice#oldtoolbag.com (Bitte ersetzen Sie # durch @, wenn Sie eine Meldung senden, und fügen Sie relevante Beweise bei. Sobald nachgewiesen, wird diese Website den涉嫌侵权的内 容立即删除。)

Gefällt dir