As funções de upload e download de arquivos foram usadas em projetos recentes. Eu acho que essa função é mais importante, então eu a extraí especialmente e tentei.
A seguir, são apresentadas as etapas específicas para fazer upload e baixar arquivos no ambiente de configuração Springmvc para sua referência. O conteúdo específico é o seguinte
1. Configuração básica:
Pacote de importação maven e configuração pom.xml. Além das dependências básicas do SpringMVC, é necessário importar o Commons-Io.jsr e o Commons-FileUpload.jar usados ao fazer o upload de arquivos:
<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> <puperid> filoadtest </fatchAd> </packaging> <suSERSE> FILLOADTEST </ArtifactId> <backaging> </Packagaging> <siens> 0.0.0.1DOTTest </ArtifactId> <chaging> WebApp </name> <url> http://maven.apache.org </url> <build> <finname> FillOadtest </nominName> <clugins> <!- A configuração a seguir pode garantir que a versão JRE não altere sempre que a atualização forçada seja, então meu eclipse4.4.1 e MAVEN2.2.5. Se você não definir isso, o JRE voltará para 1,5 toda vez que a atualização forçada é forçada-> <Plugin> <TarifactId> maven-compiler-pplugin </stutifactId> <versão 2.3.2 </version> <figuration> <locutem> 1.7 </fonte> 1.7 </Target> <aRaM> utf-8. <Ootclasspath> $ {java.home} /lib/rt.jar </sotclasspath> </compilerargudes> </frifiguration> </plugin> </fuild> <pendences> <pendency> <purbrougid> junit </groupid> <tifactId> junit </artifactid> <versão> 3.8 versão <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.0.6.RELEASE</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.2.3</version> </dependency> <pendency> <puperid> com.fasterxml.jackson.core </groupiD> <TRAFACTID> Jackson-core </stutifactId> <Version> 2.2.3 </sipers> </pendency> <spendency> <vrougid> com.fasterxml.jackson.core </grupo <artiftid> </dependency> <pendency> <puperid> Commons-FileUpload </GroupId> <TRATIFACTID> Commons-FileUpload </ArtifactId> <versão> 1.3.1 </sipers> </dependency> </dependency> <suerftid> commons-i </groupid> </Artifactid> </spendency> </siperfactId> comons-i-iO </groupid> <sutifactId> </spefice> </versão </sipery> <sipery> <siperM> comons-i </grupo> </suriFactid> </speNency> </sipery> <sipers> comon. </ject>Configuração básica de 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 "versão" 2.5 "> </filter> <crection> filtro de charset </cription> <filter-name> codingfilter </filter> <filter-class> org.springframework.web.filter.characterencodingFilter </filter-class> <ot-param> <cription> CHARSET ECODING </cription> </param-name> codificação </param-name> <amam-value> utf-8 </param-value> </filter> </filter> <Filter-Name> EncodingFilter </filter-Name> <url-tattern>/*</url-tattern> </ftrher-Mapping> <servlet> <Vertlet-name> springmvc </ervlet-name> <servlet-class> org.springframework.web.pertamled.disppartletLe <amam-name> contextConfigLocation </amam-name> <amam-value> classPath: spring.xml </param-value> </irit-param> </servlet> <sirtlet-mapping> <Verlet-name> springmvc </servlet> <url-stattern>*. <lorde-File> index.html </ld-Welcome> <lmed-File> index.htm </limk-File> <ldenm-File> index.jsp </limk-File> <ldengry-file> index.jsp </lding -file> <lorde-file> default.html </welcome> <lorda-fil> default> <lorda-file> default.html </welcome> <lorda-fil> </list-list> </web-App>
Configuração básica da primavera Spring.xml:
<? xml versão = "1.0" coding = "utf-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http:/wwww.w3 xmlns: p = "http://www.springframework.org/schema/p" xmlns: context = "http://www.springframework.org/schema/Context" xmlns: mvc = "http.org/schema/Context" xmlns: mvc = "http.org/schema/Context" xmlns: mvc = "http://schema/Context" Xmlns: xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <Contexto: anotação-config /> <mvc: anotação-driven /> <Contexto: component-scan Base-Package = "Controllers" /> <!-para evitar o download de arquivos retornando ao JSON quando o ie executar ajax-> <bean id = "mappingjacksonhttiSeSagecOnverter"> <erbound = "supportsTyDtyDtyDtyDtyed" supportsTtyDed "supportsTtyDtyted" supportsTydTyd) <bertyd "support) <Value> text/html; charset = utf-8 </value> </list> </propriedade> </bean> <!-para ativar a função de anotação do mvc mola para concluir o mapeamento de solicitações e anotações POJOS-> <Bean> <nome da propriedade = "messageconverters"> <list> <reean " conversor-> </list> </ouse> </i bean> <!-Suporte o upload de arquivos-> <bean id = "multipartresolver"> <!-100m-> <propriedades name = "maxuploadsize" value = "104857600"> </propriedades <names/"defaultEncoding" (utf "
2. Código de upload de arquivo
Para a página simples enviada Index.html, preste atenção às configurações do ENTYPE ao enviar o formulário:
<! Doctype html> <html> <head> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"/> </adhead> <body> <formulário action = "/ uploadfile. "Method =" Post ". <input type = "submit" value = "submit"/> </morm> </body> </html>
Carregue o código Java de fundo correspondente. Para perguntas específicas, consulte os comentários:
controladores de pacotes; importar java.io.file; importar java.io.ioException; importar java.util.iterator; importar javax.servlet.http.httpServletRequest; importar org.apache.commons.io.fileUtils; importar org.springframework.http.httpheaders; importar org.springframework.http.httpstatus; importar org.springframework.http.mediType; importar org.springframework.http.Responseentity; importar org.springframework.tereotype.controller; importar org.springframework.web.bind.annotation.requestmapping; importar org.springframework.web.bind.annotation.requestmethod; importar org.springframework.web.bind.annotation.requestparam; importar org.springframework.web.multipart.multipartFile; importar org.springframework.web.multipart.multiparthttpServletRequest; importar org.springframework.web.multipart.commons.commonsmultipartresolver; @Controller public class fileController { /** * File upload* * @author: tuzongxun * @Title: upLoadFile * @param @param file * @param @param request * @param @throws IllegalStateException * @param @throws IOException * @return void * @date Apr 28, 2016 1:22:00 PM * @throws */ @RequestMapping (value = "/upLoadfile.do", método = requestmethod.post) public void uploadFile (httpServletRequest request) lança ilegalStateException, ioexception {// @RequestParam ("arquivo") arquivo multipartFile, comOnsmultiPARTRESORTRESOURTRESSOLTROTAM ("Arquivo") request.getSession (). getServletContext ()); // Determine se a solicitação possui upload de arquivo, ou seja, se (multipartresolver.ismultipart (request)) {// converter para múltipla solicitação multipartttpServletRequest multirequest = (multiparthttpServletRequest) solicitação; // Obtenha todos os nomes de arquivos no iterador de solicitação <String> iter = multIREQUEST.getFilenames (); while (iter.hasNext ()) {// recebe arquivo multipart de arquivo f = multirirequest.getfile (iter.next ()); if (f! = null) {// obtenha o nome do arquivo do arquivo atualmente carregado string myFileName = f.getoriginalFileName (); // Se o nome não for "", significa que o arquivo existe, caso contrário, significa que o arquivo não existe se (myFileName.Trim ()! = "") {// Defina o caminho do upload Path Path = "C: // Users // Tuzongxun123 // Desktop //" + myFileName; Arquivo localfile = novo arquivo (caminho); F.Transferto (LocalFile); }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}Depois de selecionar o arquivo para enviar, você verá que o arquivo selecionado é passado para o local especificado no código. A renderização da página é a seguinte
3. Download do arquivo
O download do arquivo requer o caminho de armazenamento do arquivo baixado. Isso é apenas preenchido manualmente. Se estiver em um projeto específico, você poderá salvar o nome do arquivo e o caminho de armazenamento carregado no banco de dados. Em seguida, adicione uma página da lista de arquivos para exibir o nome do arquivo e o caminho do arquivo e, em seguida, clique para fazer upload do nome do arquivo correspondente e do caminho para a operação em segundo plano ao baixar.
/** * Download do arquivo, nome e endereço do arquivo Necessário * * @Author: TUZONGXUN * @TITLE: Download * @param @name * @param @param caminho * @param @return * @param @lança ioexception * @returnRepOnseEntity <byte []> * @ @28,2016 1:21:32 Pm *Throws * ResponseEntity <Byte []> Download (@RequestParam ("Nome") Nome da sequência, @RequestParam ("FilePath") String Path) lança IoException {arquivo file = new File (Path); Cabeçalhos httpheaders = new httpheaders (); String filename = new String (name.getBytes ("utf-8"), "ISO-8859-1"); // para resolver o problema de nomes chineses iluminados. headers.setContentType (mediatype.application_octet_stream); return nova respostaEntity <byte []> (fileutils.readfileTobyteArray (FILE), cabeçalhos, httpstatus.created); } A página HTML é apenas um simples nome de preenchimento e caminho do arquivo e envie -o para o plano de fundo usando o formulário. Em seguida, o plano de fundo controlará a resposta à caixa de seleção para salvar o pop -up do caminho do arquivo na página. Claro, eu não fiz nada em segundo plano aqui. Se o arquivo não existir, um erro será relatado. Você pode executar processamento correspondente:
Download de arquivos:
</br> </br> <form action = "./ downloadfile.do" style = "borda: 1px cinza sólido; largura: auto;" Method = "Post"> Nome do arquivo: <input type = "text" name = "name"/> </br> </br> Caminho do arquivo: <input type = "text" name = "filepath"/> </br> </br> <input type = "submit" value = "confirmar"/> </form>
A visualização da página é a seguinte:
Se o arquivo não existir, o erro é o seguinte:
O exposto acima é tudo sobre este artigo, espero que seja útil para o aprendizado de todos.