Este artigo compartilha componentes do download da primavera 4 da primavera para sua referência. O conteúdo específico é o seguinte
pacote com.hnust.common.controller; importar org.apache.commons.io.fileUtils; importar org.springframework.http.httpheaders; importar org.springframework.http.httpstatus; importar org.springframework.http.mediType; importação ou outg.sringfringfringframework.http.mediType; importação ou org.springframework.web.bind.annotation.restcontroller; importar java.io.file; importar java.io.ioException; importar java.io.unsupportEdEnCodingException; importar java.net.urlencoder; /*** Criado por Heweipo em 2016/5/27. * <p>* Download do Controlador Geral*/ @RestControllerPublic Class Download DownloadController estende Basecontroller {/*** Download Arquivo Método Geral** @Param File File Object* @return File Byte stream*/public ResponseIntity <Byte []> export (arquivo de arquivo) {Return Export (File.getName (), arquivo); } / *** Método geral para baixar arquivos** @Param FileName Nome do arquivo* @Param Arquivo Objeto do arquivo* @Return File Byte stream* / public ResponseEntity <byte []> export (nome do arquivo de string, arquivo de arquivo) {httpheaders headers = new htppheaders (); headers.setContentType (mediatype.application_octet_stream); headers.setContentDisPoitionFormData ("anexo", codefilename (nome do arquivo)); RespostaEntity <byte []> rs = null; tente {// httpstatus.created 201 não pode ser usado aqui porque o IE Edge não pode reconhecê -lo, mas o Firefox Chrome não tem problema rs = nova resposta <> (fileutils.readFileTobyTearraRray (arquivo), cabeçalhos, httpstatus.ok); } catch (ioexception e) {// lança nova commOnexception (Responsestatusenum.file_error, e); } retornar RS; }/** * O nome do arquivo de download, que é o nome exibido no navegador * * @param fileName Name Nome * @return Nome do arquivo adicionado * <p> * ie * mozilla/5.0 (Windows NT 10.0; Wow64; Trident/7.0; RV: 11.0) como Gecko * <p> * * Mozilla/5.0; Applewebkit/537.36 (Khtml, como Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586 * <P> * Firefox * Mozilla/5.0 (Windows NT 10.0; Wow64; RV: 46.0) GECKO/2011110/2011110) Mozilla/5.0 (Windows NT 10.0; Wow64) Applewebkit/537.36 (Khtml, como Gecko) Chrome/47.0.2526.106 Safari/537.36 */Private String EncodeFileName (String filename) {String Name = filename; tente {string agent = request.getheader ("user-agent"). tolowercase (); if (null! = agente && (agente.contains ("msie") || agent.contains ("edge"))) {// ie Edge name = urlencoder.encode (nome do arquivo, "utf-8"); } else if (agent.contains ("safari") || agent.contains ("Chrome") || agente.Contains ("firefox")) {// safari chrome firefox name = new string (filename.getbytes ("utf-8"), "iso-885-1-1"); } else {// ie10 ie11 nome = urlencoder.encode (nome do arquivo, "utf-8"); } // restaure o sinal de mais para um espaço (ou seja, a borda tem um problema) name = name.replace ("+", "%20"); } Catch (UnsupportEdEncodingException e) {// Lança nova CommOnexception (Responsestatusenum.Failure, e); } Nome de retorno; }} 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.