Recientemente, necesito cargar archivos de archivos en el proyecto. Siempre lo he enviado por formulario antes. Probé AjaxForm y siente que es bastante útil. Escribí una marca de ensayo para uso futuro.
Preparación:
Descargar jQuery-form.js
Frasco relacionado:
Commons-FileUpload-1.1.1.Jar
Commons-IO-1.3.2.Jar
Configurar multipartResolver en Spring-Servlet.xml:
<bean id = "multipartresolver"> <propiedad name = "defaultEncoding" value = "utf-8" /> <propiedad name = "maxUploadSize" valor = "10485760000" /> <Property name = "maxInMemorySize" Value = "40960" /> < /bean>
Esto es imprescindible, de lo contrario no funcionará.
página:
<! Doctype html public "-// w3c // dtd html 4.01 %> <html> <!--Autor (s): xieshuang- fecha: 2016-06-20 13: 46: 20- Descripción:-> <fead> <title> title </title> <meta http-oquiv = "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/jquery-form.js" type="text/javascript"></script><script type="text/javascript" src = "<%= request.getContextPath ()%>/page4nui/master/proyectype/js/proyectype_import.js"> </script> <script type = "text/javascript"> var contextPath = "<%= request.getContextPath ()%>"; </script> </head> <body> <viD = "state" style = "Padding-top: 5px; min-width: 300px; min-height: 180px;"> <form de formato = "fileUpload" método = "post" enctype = "multipart/form-data"> <Div Id = "DataImport"> <table> <tr> <th <th type "ALIGN" name = "file"> <font style = "color: rojo; ancho: 5%;"> *</font> </td> </tr> </table> </div> <div align = "centro"> <input iconcls = "icon-ok" valor = "ok" type = "enviar"/> <span style = "display: inline-block; width: 25px;" </spán iconcls = "icon-cancel" onClick = "cancelar"> Cancelar </a> </div> </form> </div> </body> </html>
Core JS:
var msg; $ (function () {nui.parse (); // ajax configuración var de opciones = {url: contextPath+"/webapp/cfprojectType/importexcel", befefefefefefefefefefefefefefife: showRequest, // presente éxito: showResponse, // Processing de completación Resetform: True, Datatype: 'JSon'}; $ ('#fileUpload'). Subt (function () {// nota $ (this) .AJAXSubMit (opciones); return false; // evitar que el diálogo se cierre automáticamente});}) // ejecutar la función de devolución de llamada exitosa showResponse (e) {nui.hidemesSagebox (MSG); if (E.ImportFlag == True) {CloseWindow ("OK"); } else {// algún manejo de errores}} // alguna verificación antes de la función de envío showRequest (formData, jqForm, options) {if (formData [0] .value == "" || formdata [0] .value == null) {nui.alert ("seleccione archivo"); devolver falso; } var filename = $ ("#uploadfile"). val (). Split ("//"). Pop (); var strs = new Array (); // Defina una matriz strs = filename.split ('.'); var sufijo = strs [strs .length - 1]; if (suffix! = 'xls' && suffix! = 'xlsx') {nui.alert ("¡Seleccione el archivo de Excel!"); devolver falso; } msg = nui.loading ("Cargando", "por favor esperando");}Código Java:
@SupplesWarnings ("Unchecked")@requestmapping ("/webapp/cfprojecttype/importexcel")@ResponseBodyPublic Map <String, Object> ImportExcel (@RequestParam ("file") MultipartFile [] archivos, httpServletRequest Solicitud). InputStream FIS; fis = nulo; File filein = null; Pruebe {para (multipartFile myFile: files) {if (! myFile.isEmpty ()) {String realPath = request.getSession (). GetServletContext (). GetRealPath ("/export"); filein = nuevo archivo (realPath); // juzga si el directorio donde existe el archivo cargado if (! FileIn.exists () &&! FileIn.isDirectory ()) {// Cree el directorio fileIn.mkDirs (ruta); } // Copie el archivo cargado en la carpeta myFile.Transferto (nuevo archivo (ruta+nombre de archivo)); }}}}Aquí he usado otro método FileUtils.CopyInputStreamToFile (InputStream Arg0, File Arg1) antes, que también puede guardar el archivo en la ruta.
Para obtener un contenido más emocionante, consulte los temas especiales "Resumen de tecnología de carga AJAX", "Resumen de operación de carga de archivos JavaScript" y "Resumen de operación de carga de jQuery" para el aprendizaje.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.