Três maneiras de fazer upload de arquivos no springmvc, basta fazer o upload do código, você pode dizer de relance
Recepção:
<%@ página de página = "java" contentType = "text/html; charset = utf-8" pageEncoding = "utf-8"%> <! Doctype html public "-// w3c // dtd html 4.01 transitório // en" "http://www.w3.org/tr/html4/loose.dtd"><html> <head><meta http-equiv =" content-type "content =" text/html; charset = utf-8 "> <title> shorm title aqui </title> <//html; ação = "/springmvc006/fileUpload" método = "post" ENCTYPE = "Multipart/form-data"> <H1> Carregar arquivos usando streaming </h1> <input type = "file" name = "file"> <input type = "submit" = "" upload "//form> name =" forma2 "" ENCTYPE = "Multipart/Form-Data"> <H1> Carregue arquivos usando o método file.transfer fornecido por multipart </h1> <input type = "file" name = "file"> <input type = "submit" value = "upload"/> </form> <formulário "form2" = "/"/springmvc006/"> </form> <form =" form2 "="/"/springmvc006/" ENCTYPE = "Multipart/Form-Data"> <H1> Carregue o arquivo usando o método fornecido por mola mvc </h1> <input type = "file" name = "file"> <input type = "submit" value = "upload"/> </form> </body> </html>
Configuração:
<!-multiparte o upload do arquivo-> <bean id = "multipartresolver"> <propriedade name = "maxuploadSize" value = "104857600" /> <names name = "maxinMemorySize" value "> 4096" /> <nome da propriedade "defaultEnCinging")
Nos bastidores:
Método 1:
/** Faça o upload do arquivo através do fluxo* @RequestParam ("arquivo") encapsular o arquivo obtido pelo controle de nome = arquivo em CommOnsmultipartFile objeto*/@requestMapping ("fileUpload") public string fileUpload (@RequestParam ("file") comOnsmultiPartFile File) slows Ioxcend. startTime = system.currenttimemillis (); System.out.println ("FileName:"+FILE.GETORGINALFILENAME ()); tente {// Obtenha o fluxo de saída outputStream OS = new FileOutputStream ("e:/"+new Date (). gettime ()+file.getoriginalfileName ()); // Obtenha o fluxo de entrada CommonsmultipartFile para obter diretamente o fluxo do arquivo inputStream is = file.getInputStream (); int temp; // leia e escreva bytes um por um para while ((temp = is.read ())! = (-1)) {os.Write (temp); } os.flush (); os.close (); is.close (); } catch (fileNotfoundException e) {// TODO BLOCO DE CATAGEM AUTOMENTADO E.PRINTSTACKTRACE (); } long endtime = system.currenttimemillis (); System.out.println ("Tempo de execução do método um:"+string.valueof (final-starttime)+"ms"); retornar "/sucesso"; }Método 2:
/** Use file.transto para salvar o arquivo carregado*/ @RequestMapping ("FILEUPLOAD2") public String FileUpload2 (@RequestParam ("File") CommonsmultipartFile File) lança IoException {long starttime = System.currenttimEmillis (); System.out.println ("FileName:"+FILE.GETORGINALFILENAME ()); String path = "e:/"+new date (). Gettime ()+file.getoriginalfilename (); Arquivo newFile = novo arquivo (caminho); // Escreva o arquivo diretamente através do método CommonsMultipartFile (Nota desta vez) file.Transferto (newFile); Long Endtime = System.CurrentTimemillis (); System.out.println ("O tempo de execução do método dois:"+string.valueof (Endtime-starttime)+"ms"); retornar "/sucesso"; }Método 3:
/**Use o método de fazer upload de arquivos fornecidos por Spring*/ @RequestMapping ("SpringUpload") Public String SpringUpload (solicitação httpServletRequest) lança ilegalStateException, ioexception {long starttime = System.CurrentTimemillis (); // Inicialize o contexto atual no CommonsmutipartResolver (multipart parsers) commonsmultipartresolver multipartresolver = new commonsmultipartResolver (request.getSession (). GetServletContext ()); // Verifique se existe Enctype = "Multipart/Form-Data" no formulário if (multipartresolver.ismultipart (request)) {// altere a solicitação no solicitação multipart multrotarthtpServletRequest multirequest = ((multipartttpperLerequest) solicitação; // Obtenha todos os nomes de arquivos no iterador multirequest ITER = multIREQUEST.getFileNames (); while (iter.hasNext ()) {// transfuse todos os arquivos ao mesmo tempo multipart -arquivo = multirirequest.getFile (iter.next (). tostring ()); if (arquivo! // upload file.transferto (novo arquivo (caminho)); }}} long endtime = System.currenttimemillis (); System.out.println ("O tempo de execução do método três:"+string.valueof (final-starttime)+"ms"); retornar "/sucesso"; }Vamos dar uma olhada no tempo de upload do teste:
A primeira vez que usei um arquivo de 4m:
nome do arquivo: test.rar
Método 1 tempo de execução: 14712ms
nome do arquivo: test.rar
Método 2 Tempo de execução: 5ms
Método 3 Tempo de execução: 4ms
A segunda vez: eu uso um arquivo de 50m
O progresso do método é muito lento e levará 5 minutos.
Método 2 Tempo de execução: 67ms
Método 3 Tempo de execução: 80ms
A partir dos resultados do teste, podemos ver que o método de fazer upload de arquivos usando SpringMVC é muito mais rápido!
Para o resultado do teste 2: pode ser que o método três deve ser pesquisado um por um, para que seja mais lento. Mas, de um modo geral, temos o método 3 porque pode nos fornecer mais métodos
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.