Три способа загрузки файлов в Springmvc, просто загрузите код, вы можете сказать с первого взгляда
Столь регистрации:
<%@ page language = "java" contentType = "text/html; charset = utf-8" pageencoding = "utf-8"%> <! doctype html public "-// w3c // dtd html 4.01 transitional // en"-// w3c // dtd html 4.01 // en «http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv =" content-type "content =" text/html; charset = utf-8 ">« Название »вставьте заголовок здесь </title> </head> <bord> <form =" selform? action="/SpringMVC006/fileUpload" method="post" enctype="multipart/form-data"><h1>Upload files using streaming</h1><input type="file" name="file"><input type="submit" value="upload"//form><form name="Form2" action="/SpringMVC006/fileUpload2" method="post" ectype = "multipart/form-data"> <h1> файлы загрузки с использованием метода file.transfer, предоставленного Multipart </h1> <input type = "file" name = "file"> <input type = "prope" value = "upload"/> </form> <form name = "form2" action = "/springmvc006/springupload". ectype = "multipart/form-data"> <h1> загрузите файл, используя метод, предоставленный Spring mvc </h1> <input type = "file" name = "file"> <input type = "Vade" value = "upload"/> </form> </body> </html>
Конфигурация:
<!-Multipart File upload-> <bean id = "multipresolver"> <name = "maxuploadSize" value = "104857600" /> <name = "maxInMemorySize" value = "4096" /> <name = "defaultEncoding" value = "utf-8"> < /propertive> < /> < /bean>
За кулисами:
Метод 1:
/** Загрузите файл через Stream* @requestparam ("file") инкапсуляция файла, полученного с помощью элемента управления файлом = commonsmultipartfile obj startTime = System.CurrentTimeMillis (); System.out.println ("filename:"+file.getoriginalfilename ()); try {// Получить выходной поток outputstream os = new FileOutputStream ("e:/"+new Date (). getTime ()+file.getoriginalFilename ()); // Получить входной потоки CommonsmultipartFile, чтобы напрямую получить входной поток файла IS = file.getInputStream (); int temp; // Читать и записать байты один за другим в while ((temp = is.read ())! = (-1)) {os.write (temp); } os.flush (); os.close (); is.close (); } catch (filenotfoundexception e) {// todo автоматически сгенерированный блок e.printstacktrace (); } long EndTime = System.CurrentTimeMiLlis (); System.out.println («Время выполнения метода первого:»+string.valueof (endtime-starttime)+"ms"); вернуть "/успех"; }Метод 2:
/** Использовать file.transto для сохранения загруженного файла*/ @requestmapping ("fileupload2") public String fileupload2 (@requestparam ("file") commonsmultipartfile file) throws ioexception {long starttime = system.currenttimelis (); System.out.println ("filename:"+file.getoriginalfilename ()); String path = "e:/"+new Date (). GetTime ()+file.getoriginalFilename (); File newfile = new File (path); // Написать файл непосредственно через метод CommonsMultiPartFile (примечание на это время) file.transferto (newfile); Long EndTime = System.CurrentTimeMillis (); System.out.println («Время выполнения метода второго:»+string.valueof (endtime-starttime)+«ms»); вернуть "/успех"; }Метод 3:
/**Используйте метод загрузки файлов, предоставленных Spring*/ @Requestmapping ("Springupload") public String Springupload (httpservletrequest) Throws OldalStateException, ioException {long startTime = System.CurrentTimeMillis (); // Инициализировать текущий контекст в CommonsMutiparTresolver (Multipart Parser) CommonsmultiparTresolver multipResolver = new CommonsMultiparTresolver (request.getSession (). GetServletContext ()); // Проверьте, есть ли ectype = "multipart/form-data" в форме if (multipartresolver.ismultipart (request)) {// Изменение запроса в Multipart Question Multipttpservlectrequest multirequest = (MultiparthTtpServletRequest) запроса; // Получить все имена файлов в Multirequest iterator iter = multirequest.getFilenames (); while (iter.hasnext ()) {// transfuse все файлы сразу Multipartfile file = multirequest.getFile (iter.next (). toString ()); if (file! = null) {string path = "e:/springupload"+file.getoriginalfilename (); // upload file.transferto (новый файл (path)); }}} long EndTime = System.currentTimeMiLlis (); System.out.println («Время выполнения метода три:»+string.valueof (endtime-starttime)+«ms»); вернуть "/успех"; }Давайте посмотрим на время загрузки теста:
В первый раз, когда я использовал 4M -файл:
Имя файла: test.rar
Метод 1 Время выполнения: 14712 мс
Имя файла: test.rar
Метод 2 Время выполнения: 5 мс
Метод 3 Время выполнения: 4 мс
Второй раз: я использую файл 50 м
Прогресс метода очень медленный, и это займет 5 минут.
Метод 2 Время выполнения: 67 мс
Метод 3 Время выполнения: 80 мс
Из результатов теста мы видим, что метод загрузки файлов с использованием SpringMVC намного быстрее!
Для результата теста 2: может быть, что метод три должен искать один за другим, так что он должен быть медленнее. Но, вообще говоря, у нас есть метод 3, потому что он может предоставить нам больше методов
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.