Функции загрузки и загрузки файлов использовались в последних проектах. Я думаю, что эта функция более важна, поэтому я специально извлек ее и попробовал сам.
Ниже приведены конкретные шаги для загрузки и загрузки файлов в среде конфигурации SpringMVC для вашей ссылки. Конкретный контент заключается в следующем
1. Базовая конфигурация:
Maven Import Package and Configuration pom.xml. В дополнение к основным зависимостям SpringMVC, необходимо импортировать Commons-IO.JSR и Commons-FileUpload.jar, используемый при загрузке файлов:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>filLoadTest</groupId> <artifactId>filLoadTest</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>filLoadTest Maven WebApp </name> <url> http://maven.apache.org </url> <buld> <finalname> filloadtest </finalname> <blicins> <!- Следующая конфигурация может гарантировать, что версия JRE не будет изменяться каждый раз, когда вынужденное обновление будет, тогда My Eclipse4.4.1 и Maven3.2.5. Если вы не установите это, JRE будет изменяться на 1,5 каждый раз, когда принудительное обновление принудительно-> <blicin> <ArtifactId> maven-compiler-plugin </artifactid> <serse> 2.3.2 </version> <Конфигурация> <source> 1.7 </source> <Target> 1.7 </target> <coding> utf -8 </encoding> <compilling> <ser/verbirgumment> <coding> utf -8 </encoding> </verbirgumment> <coding> <coding> utf-8 </encoding> </verbirgumment> <codering> <codeRemeRgument> <bootclasspath> $ {java.home} /lib/rt.jar </bootclasspath> </compilerarguments> </configuration> </plagin> </build> <depertive> <dehyestondery> <groupid> junit </GroupD> <strifactid> junit </artifactid> <service> 3.8 <Depective> <groupid> org.springframework </GroupId> <artifactId> Spring-webmvc </artifactid> <serse> 4.0.6.Release </version> </degifaction> <dependency> <groupid> com.fasterxml.jackson.core </GroupD> <strifactId> artifactId> artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.2.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.2.3</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> </dependencies> </project>Базовая конфигурация web.xml:
<? 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" xmlns: web = "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 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 "> <filter> <description> фильтр charset </description> <Filter-Name> inCodingFilter </filter-Name>> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <description>charset encoding</description> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name> encodingfilter </filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name> springmvc </servlet-name> <servlet-class> org.springframework.web.servlet.dispatcherserververerv </servlet-class> <intparme> <param-name> contextConfiglocation </param-name> <param-value> classPath: Spring.xml </param-value> </init-param> </servlet> <servlet-mapping> <servlet-name> springmvc </servlet-name> <url-pattern>*. Do </url-pattern> </servlet-mapping> <belloge-file-hautle-list>*. <welcelcome-file> index.html </wervedied-file> <selcoversfile> index.htm </wervedied-file> <selcopport-file> index.jsp </wervedied-file> <welcelyfile> index.jsp </velocking-file> <welcelcome-file> default.html </wervedied-file> <werved> Defliefile file> default> default-file> wlevessp. </werving-file-list> </web-app>
Spring Basic Configuration Spring.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: p = "http://www.springframework.org/schema/p" xmlns: context = "http://www.springframework.org/schema/context" xmlns: mvc = "http://www.springframe.orgema. xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.spramework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.spramework.org/schema/mvc/spring-mvc.xssss.coms. <context:annotation-config /> <mvc:annotation-driven /> <context:component-scan base-package="controllers" /> <!-- To avoid download files from returning to JSON when IE executes AJAX --> <bean id="mappingJacksonHttpMessageConverter" > <property name="supportedMediaTypes"> <list> <dulch> text/html; charset = UTF-8 </value> </list> </property> </bean> <!-Чтобы включить функцию аннотации Spring MVC для завершения отображения запросов и аннотаций POJOS-> <BeangeNhsonhspmessAgeConverters »> <fice Beas =« Maping JackshonHtpMessAgeConverters »> <Sfice BeanconHsonHecongeConverters»> <fice BeanconHsonHeSconverters »> <fice BeancsonHsonHeSconverters»> <fice BeanconHsonHeConverters »> </list> </property> </bean> <!-Поддержка загрузки файлов-> <bean id = "multipresolver"> <!-100m-> <property name = "maxuploadsize" value = "104857600"> </property> <property name = "defaultEncoding" value = "utf-8"> </property> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean>
2. Код загрузки файла
Для загруженного простого page index.html обратите внимание на настройки EntyPe при отправке формы:
<! Doctype html> <html> <head> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"/> </head> <body> <form action = "./ oploadfile.do" method = "enctype =" multipart/form-data "> select file:" file = "enctype =" multipart/form-data "> select: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<3me vemod vepale =" enctype = "form-data"> select. <input type = "отправить" value = "pospe"/> </form> </body> </html>
Загрузите соответствующий фоновый код Java. Для конкретных вопросов, пожалуйста, обратитесь к комментариям:
контроллеры пакетов; Импорт java.io.file; импортировать java.io.ioexception; импортировать java.util.iterator; Импорт javax.servlet.http.httpservletrequest; Импорт org.apache.commons.io.fileutils; Импорт org.springframework.http.httphaders; Импорт org.springframework.http.httpstatus; Импорт org.springframework.http.mediatype; Импорт org.springframework.http.responseentity; Import org.springframework.sterotype.controller; Импорт org.springframework.web.bind.annotation.requestmapping; Импорт org.springframework.web.bind.annotation.requestmethod; Импорт org.springframework.web.bind.annotation.requestparam; Импорт org.springframework.web.multipart.multipartfile; Импорт org.springframework.web.multipart.multiparthttpservletrequest; Импорт org.springframework.web.multipart.commons.commonsmultipartresolver; @Controller public class filecontroller { /** * upload * * * @author: tuzongxun * @title: uploadfile * @param @param file * @param @param wesp * @param @throw @RequestMapping(value = "/upLoadFile.do", method = RequestMethod.POST) public void upLoadFile(HttpServletRequest request) throws IllegalStateException, IOException { // @RequestParam("file") MultipartFile file, CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver( request.getSession (). getServletContext ()); // Определите, имеет ли запрос загрузку файла, то есть if (multipResolver.ismultipart (request)) {// конвертируется в Multipart Request MultiprthttpserVletRequest multirequest = (multiprthttpservletrequest) запрос; // Получить все имена файлов в запросе iterator <string> iter = multirequest.getFilenames (); while (iter.hasnext ()) {// Получить загруженный файл multiplectfile f = multirequest.getfile (iter.next ()); if (f! = null) {// Получить имя файла загруженной в настоящее время строки файла myfilEname = f.getoriginalfilename (); // Если имя не является «», это означает, что файл существует, в противном случае это означает, что файл не существует, если (myfilEname.trim ()! = "") {// Определите путь string pathload = "c: // users // tuzongxun123 // desktop //" + myfilename; File localfile = new File (path); F.Transferto (LocalFile); }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}После выбора файла для отправки вы увидите, что выбранный файл передается в указанное место в коде. Рендеринг страницы выглядит следующим образом
3. Скачать файл
Загрузка файла требует пути хранения загруженного файла. Это просто заполнено вручную. Если он находится в конкретном проекте, вы можете сохранить имя файла и загруженный путь хранения в базе данных. Затем добавьте страницу списка файлов, чтобы отобразить имя файла и путь файла, а затем нажмите, чтобы загрузить соответствующее имя файла и путь к фоновой операции при загрузке.
/** * Загрузка файла, имя файла и адрес файла требуется * * * @author: tuzongxun * @title: загрузка * @param @param name * @param @param path * @retury @return * @param @throws ioexception * @returnresponseanty <byte []> * @date Apr 28,2016 1:21:32 Pm * @Throws * @Requepploypload. public responseentity <byte []> скачать (@requestparam ("name") name строка, @requestparam ("filePath") String Path) Throws IoException {file file = new File (path); Httpheaders Headers = new httphaders (); String fileName = new String (name.getBytes ("utf-8"), "iso-8859-1"); // Чтобы решить проблему искаженных китайских имен. headers.setContentType (mediaType.application_octet_stream); вернуть новую реакцию <byte []> (fileutils.readfiletobytearray (file), заголовки, httpstatus.created); } Страница HTML - это просто простое заполнение имени файла и пути файла, и отправьте ее на фон, используя форму формы. Затем фон будет управлять ответом на поле выбора для сохранения всплывающего окна пути файла на странице. Конечно, я здесь ничего не делал на заднем плане. Если файл не существует, будет сообщена ошибка. Вы можете выполнить соответствующую обработку:
Скачать файл:
</br> </br> <form action = "./ downloadfile.do" style = "border: 1px solid grey; ширина: auto;" method = "post"> Имя файла: <input type = "text" name = "name"/> </br> </br> Путь файла: <input type = "text" name = "filePath"/> </br> </br> <input type = "vade" value = "Подтверждение"/> </> form>
Просмотр страницы выглядит следующим образом:
Если файла не существует, ошибка заключается в следующем:
Выше приведено в этой статье, я надеюсь, что это будет полезно для каждого обучения.