Сиарсер по умолчанию SpringMVC не включает в себя анализатор для загрузки файлов. При использовании SpringMVC для загрузки файла вам необходимо использовать многоподобное объявление, предоставленное SpringMVC. Поскольку Commonsmultipartresolver реализует многократный интерфейс, мы можем настроить его в файле конфигурации SpringMVC следующим образом:
<bean id = "multiartresolver"> <name = "defaultEncoding" value = "utf-8" /> <name = "maxUploadSize" value = "10485760000" /> <name = "maxInmemorySize" value = "40960" /> < /bean>
Во-первых, представьте пакеты, необходимые для загрузки файлов, Commons-Logging-*. Jar Commons-IO-*. Jar Commons-FileUpload-*. JAR
Создайте новую страницу 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/tml4/html4/html. <html> <Head> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"> <title> upload file </title> </head> <body> <%-<form action = "user/fileupload" method = "ectype =" multipart/form-data ">-%> <form action =" ectype = "multipart/form-data">-%> <form action = "formeplaid =" formaud = "formaud =" ectype = "uptulart/form-data"> ". ectype = "multipart/form-data"> <input type = "file" name = "fileupload"/> <input type = "propo" value = "upload"/> </form> </body> </html>
Есть много форм загрузки SpringMVC, здесь я представлю два типа.
Первый тип , посмотрите на контроллер
пакет gd.hz.springmvc.controller; Импорт java.io.file; импортировать java.io.ioexception; Import org.springframework.sterotype.controller; Импорт org.springframework.web.bind.annotation.requestmapping; Импорт org.springframework.web.bind.annotation.requestmethod; Импорт org.springframework.web.bind.annotation.requestparam; Import org.springframework.web.multipart.commons.commonsmultipartfile; Импорт org.springframework.web.servlet.modelandView; @Controller ("usercontroller") @requestmapping ("user") public class usercontroller {// process file upload @requestmapping (value = "fileupload", method = requestmethod.post) public modelandView fileupload (@requestparam ("fileupload") commonsmultipar System.out.println (file.getContentType ()); // Получить систему размера файла.out.println (file.getSize ()); // Получить имя файла System.out.println (file.getoriginalfilename ()); // проверить if (! File.isempty ()) {string path = "d:/" + file.getoriginalfilename (); File localfile = new File (path); try {file.transferto (localfile); } catch (allodalStateException e) {e.printstackTrace (); } catch (ioException e) {e.printstackTrace (); }} вернуть New ModelAndView ("dataCcess"); }}Класс CommonsmultipartFile предоставляет нам множество методов обработки файлов. Например, размер файла, имя файла загрузки, тип файла и конкретное использование, вы можете просмотреть документ Spring. Transferto выводит файл в указанное место.
Второй метод загрузки файлов, этот метод используется чаще:
пакет gd.hz.springmvc.controller; Импорт java.io.file; импортировать java.io.ioexception; импортировать java.util.iterator; Импорт javax.servlet.http.httpservletrequest; Import org.springframework.sterotype.controller; Импорт org.springframework.web.bind.annotation.requestmapping; Импорт org.springframework.web.bind.annotation.requestmethod; Импорт org.springframework.web.multipart.multipartfile; Импорт org.springframework.web.multipart.multiparthttpservletrequest; Импорт org.springframework.web.multipart.commons.commonsmultipartresolver; @Controller ("usercontroller") @requestmapping ("user") public class usercontroller {// process file upload 2 @requestmapping (value = "fileupload2", method = requestMethod.post) public String fileUpload2 (httpserveltrequest) trows wordalStaTeex, ioException { / // loise -{ / / diseexception { / // loise us us us us us us us us us us us useexceptex us us us useExcepteex. Commonsmultipartresolver multipartresolver = new Commonsmultipartresolver (request.getSession (). GetServletContext ()); // Проверьте, имеет ли форма enctype = "multipart/form-data" if (multiprtresolver.ismultipart (request)) {multiparthttpllectrequest multirequest = (multiprthttpservletrequest) запрос; Итератор <string> iter = multirequest.getFilenames (); while (iter.hasnext ()) {// унаследован от Commonsmultipartfile, владеет вышеуказанным методом. MultipartFile file = multirequest.getFile (iter.next ()); if (file! = null) {string filename = "demoupload" + file.getoriginalfilename (); String path = "d:/" + filename; File localfile = new File (path); file.transferto (localfile); }} return "dataCcess"; }}MultiparthttpservletRequest предоставляет более гибкий метод, который может получить несколько файлов и имен файлов и может пройти через каждый файл.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.