Recentemente, preciso fazer upload de arquivos no projeto. Eu sempre o enviei por formulário antes. Eu tentei Ajaxform e parece que é bastante útil. Eu escrevi uma marca de ensaio para uso futuro.
Preparação:
Faça o download do jQuery-form.js
Jarro relacionado:
Commons-FileUpload-1.1.1.jar
Commons-io-1.3.2.Jar
Configure multipartresolver em spring-servlet.xml:
<bean id = "multipartresolver"> <propriedade name = "defaultEncoding" value = "utf-8" /> <names name = "maxuploadsize" value = "10485760000" /> <nome da propriedade = "maxinMemorysize" value = "40960" /> < /beins>
Isso é obrigatório, caso contrário, não funcionará.
página:
<! Doctype html public "-// w3c // dtd html 4.01 transitória // pt" "http://www.w3.org/tr/html4/loose.dtd"><%@ página" java "contenttype =" text/html; %> <html> <!--Autor (s): xieshuang-data: 2016-06-20 13: 46: 20- Descrição:-> <head> <title> título </title> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"/> <script " src = "<%= request.getContextPath ()%>/Common/nui/nui.js" type = "text/javascript"> </sCript> <script src = "<%= request.getContextPath ()%>/common/nui/jQuery/jQuercert.js" typen ()/jextpath ()/jverycript/jQuiPt.JSTPATH ()/jator/jQuiPrt.JSTPATH ()/jQuiPt.JSTP () type = "text/javaScript" src = "<%= request.getContextPath ()%>/página4nui/master/projecttype/js/projecttype_import.js"> </cript> <script type = "text/javascript"> var context = "<%= script> <gript) () style = "Padding-top: 5px; min-lar: 300px; min-hEATH: 180px;"> <form id = "fileUpload" method = "post" rtype = "multipart/form-data"> <div id = "dataImport"> <tabela> <tr> <the align = data "> selecionar arquivo: </thh> name = "FILE"> <font style = "cor: vermelho; largura: 5%;"> *</font> </td> </tr> </tabela> </div> <div align = "central"> <input iconcls = "icon-ok" value = "ok" type "/"/> <span = "dolls =" noblock "; wump"; iconCls = "icon-cancel" onclick = "cancel"> cancel </a> </div> </morm> </div> </body> </html>
Core JS:
var em msg; $ (function () {nui.parse (); // AJAX Configuration var options = {url: contextPath+"/webApp/cfProjectType/importExcel", beforesubMit: showRequest, // Sucesso presente: ShowResponse, // Processando a conclusão da forma: $ ('#fileUpload'). submit (function () {// note $ (this) .ajaxsubmit (opções); retornar false; // impedir a caixa de diálogo de fechar automaticamente});}) // Executar a função de retorno de chamada bem -sucedida ShowRespond (e) {nui.hidemessageBox (MSGBOT); if (e.importflag == true) {closewindow ("ok"); } else {// Algum manuseio de erros}} // Alguma verificação antes da função de envio ShowRequest (formData, jqform, opções) {if (formData [0] .Value == "" || formData [0] .Value == null) {nui.alert ("arquivo de por favor"); retornar falso; } var filename = $ ("#uploadfile"). val (). split ("//"). pop (); var strs = new Array (); // define uma matriz strs = filename.split ('.'); var sufix = strs [strs .Lengen - 1]; if (sufixo! = 'xls' && suffix! = 'xlsx') {nui.alert ("Selecione o arquivo do Excel!"); retornar falso; } msg = nui.loading ("carregamento", "por favor, esperando");}Código Java:
@Suppresswarnings ("desmarcados")@requestmapping ("/webapp/cfProjectType/importExcel")@ResponseBodyPublic Map <string, object> importExcel (@RequestParam ("file") multipartFile [] arquivos, httpsleTleTerequest). InputStream fis; fis = nulo; Arquivo filein = null; tente {for (multipartfile myfile: arquivos) {if (! myfile.isempty ()) {string realpath = request.getSession (). getServletContext (). getRealPath ("/export"); filein = novo arquivo (realpath); // julga se o diretório onde o arquivo carregado existe if (! Filein.exists () &&! Filein.isdirectory ()) {// crie o diretório filein.mkdirs (path); } // Copie o arquivo carregado para a pasta myfile.transferto (novo arquivo (caminho+nome do arquivo)); }}}}Aqui eu usei outro método fileUtils.copyInputStreamTofile (InputStream arg0, arquivo arg1) antes, que também pode salvar o arquivo no caminho.
Para um conteúdo mais emocionante, consulte os tópicos especiais "Resumo da tecnologia do Ajax Upload", "Javascript File Upload Operação Resumo" e "Resumo da operação de upload do jQuery" para aprender.
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.