Solo mira el código, los comentarios están dentro
En primer lugar, web.xml
<? xml versión = "1.0" encoding = "utf-8"?> <web-app versión = "2.5" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <ervlet> <scription> Configurar el controlador front-end de Springmvc </cription> <Inservlet> <Servlet-class> org.springframework.web.servlet.dispatcherservlet </servlet-class> <itel-param> <amamname> contextconfiglocation </amamname> <amam-value> classpath: applicationContext.xml </param-value> </init-param> <arbar-on-startup> 1 </footing-startup <Servlet-mapping> <Servlet-name> cargar </servlet-name> <url-pattern>/</sl-pattern> </servlet-mapping> <filter> <Scuidtion> SOLO SOLO PROBLEMAS DE LA ENTREGA DEL PARAMETER </CRUFTION> <FILTERNEMNO> CARACTERENCODINGUTF8 </filtre-name-name> <filter-class> org.springFrameWork.web.filter.filter.filter. <Init-param> <amamname> codificación </param-name> <amam-value> utf-8 </marr-value> </it-param> </sille> <filter-mapping> <filter-name> caracteresCodingutf8 </filter-name> <url-pattern>/*</ url-pattern> </filter-mapping> </bathapp>
A continuación se encuentra en //src//applicationContext.xml
<? xml versión = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" "" "" xmlns: mvc = "http://www.springframework.org/schema/mvc" xmlns: context = "http://www.springframework.org/schema/context" xsi: schemalocation http://www.springframework.org/schema/Beans/spring-Beans-3.2.xsd http://www.springframework.org/schema/mvc http://www.springfrframework.org/schema/mvc/spring-mvc-3.2.2.2. http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/context/spring-context-3.2.xsd "> < base-package) --> <!-- Here you can refer to my article http://blog.csdn.net/jadyer/article/details/6038604 --> <context:component-scan base-package="com.jadyer"/> <!-- Start SpringMVC annotation function, it will automatically register related instances of HandlerMapping, HandlerAdapter, and ExceptionResolver --> <MVC: Annotation-Driven/> <!-Dado que SpringMVC está configurado en Web.xml para interceptar todas las solicitudes, no se lee al leer archivos de recursos estáticos-> <!-A través de esta configuración, puede especificar todos los recursos que solicitan o referencia "/js/**" y se encontrará desde "/js/"-> <mvc: Recursos mapeando = "/" JS/** "Ubicación/"/"/"/"/" <mvc: recursos mapping = "/upload/**" ubicación = "/upload/"/> <!-Al cargar archivos de SpringMVC, debe configurar el procesador multipráctico múltiple-> <bean id = "multipartresolver"> <!-Especifique que el tamaño total de los archivos cargados no pueda exceder el 800kb ... nota que el límite de la propiedad de maxuplaads, pero la propiedad de la m de mAXUPLOAds, pero para un archivo cargado, no puede exceder el archivo de 800kB ... nota que el límite de la propiedad de maxuplaads, pero la propiedad de la m de mAXUPLOAds, pero para un archivo cargado, no puede excedir el archivo de los archivos cargados. La suma de la capacidad de todos los archivos-> <Property name = "maxUploadSize" value = "800000"/> </ bean> <!-Cuando SpringMVC excede el límite de archivo de carga, lanzará org.springframework.web.multipart.maxuploadsizexexexception-> <! ingresó el método del controlador en este momento-> <bean id = "excepcionResolver"> <Property name = "ExceptionMappings"> <props> <!-Al encontrar una excepción maxuploadsizeeXcedEdException, saltará automáticamente a /webinf/jsp/error_fileupload.jsp-> <proping key="org.springframework.web.multipart.MaxUploadSizeExceededException">error_fileupload</prop> </props> </property> </bean> <bean> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean></beans>
La siguiente es la página de solicitud cuando cargar el contenido del archivo es demasiado grande //webinf//jsp//error_fileupload.jsp
<%@ page idioma = "java" pageEncoding = "UTF-8"%>
<h1> El archivo es demasiado grande, vuelva a controlar </h1>
A continuación se muestra la página de carga para seleccionar archivos index.jsp
<%@ page lenguaje = "java" pageEncoding = "utf-8"%> <!-Esto no se puede abreviar como <script type = "text/javaScript" src = ".." // js/jQuery-1.10.2.min.js "> </script> <script type =" text/javaScript " src = "<%= request.getContextPath ()%>/js/ajaxFileUpload.js"> </script> <script type = "text/javaScript" src = "<%= request.getContextPath ()%>/js/aJaxfileupload.js"> </script> <script type = "text/javaScript" AJAXFILEUPLOAD () {// se muestra una imagen al cargar un archivo, y la carga de archivo se completa para ocultar la imagen // $ ("#carging"). AjaxStart (function () {$ (this). // La dirección del servidor de la operación de carga de archivo (los parámetros se pueden aprobar y se ha probado personalmente) URL: '$ {PageContext.Request.ContextPath}/test/fileUpload? Uname = xuanyu', secureuri: false, // si el confirmación segura está habilitado, el predeterminado es falso fileElementid: 'myBlogimage', // the Id attribeTy: 'TEXTY' TEXTO 'TEXTO:' TEXTO TEXTIVE ',', ATTORTO ', ATTRIBEDI // El formato devuelto por el servidor puede ser JSON o XML, etc. éxito: función (datos, estado) {// la función de procesamiento data = data.replace ("<pre>", ''); // AjaxFileUpload agregará el sufijo de <pre> text </pre> al contenido de texto al que responde el servidor. data = data.replace ("</pre>", ''); data = data.replace ("<pre>", ''); data = data.replace ("</pre>", ''); data = data.replace ("</pre>", ''); // En este ejemplo, después de que se complete el archivo de carga, el servidor volverá al primer plano [0`filePath] if (data.substring (0, 1) == 0) {// 0 significa cargar correctamente (supera la ruta del archivo después de la carga), 1 significa falla (superación la descripción de la falla) $ ("img [id = 'cargarimage']"). $ ('#resultado'). html ("Imagen Subida con éxito <br/>"); } else {$ ('#resultado'). html ('La carga de imagen falló, ¡inténtelo de nuevo!'); }}, error: función (datos, estado, e) {// la función de procesamiento $ ('#resultado'). html ('la carga de imagen falló, intente nuevamente !!'); }});} </script> <div id = "resultado"> </div> <img id = "uploadImage" src = "http://www.firefox.com.cn/favicon.iCo"> <input type = "file" id = "myBloGImage" name = "myfiles"/> <input type = "button" Value "up Itagead" onClick = "AjaxFileUpload ()"/> <!-Introducción a AjaxFileUpload Sitio web oficial: http://phpletter.com/our-projects/AJAXFILEUPLOAD/Introduction: JQuery AjaxFilePlOAD puede lograr archivos de carga sin refrigeración, y es fácil de usar y es fácil de usar. Tiene muchos usuarios. Vale la pena recomendar: el orden de introducir JS (depende de jQuery) y no hay formularios en la página (solo desencadena el método AjaxFileUpload () cuando se hace clic en el botón) son los errores y soluciones comunes los siguientes 1) SyntaxError: Falta; Antes de la declaración: verifique si se puede acceder a la ruta de URL 2) SyntaxError: Error de sintaxis: verifique si el archivo JSP que maneja la operación de envío tiene un error de sintaxis 3) sintaxError: ID de propiedad inválida -comprobar si la identificación de propiedades 4) sintaxError: faltando} en expresión XML --schok: el nombre del archivo de archivo es coherente o no 5) Otros errores personalizados -check -check si los parámetros faltan por parte Error de $ variable, que es mucho más conveniente que las indicaciones de error inválidas anteriores -> Finalmente, fileUploadController.java que maneja la carga de archivos
paquete com.jadyer.controller; import java.io.file; import java.io.ioException; import java.io.printwriter; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletResponse; importar org.apache.commons.io.common. org.springframework.stereotype.controller; import org.springframework.web.bind.annotation.requestMapping; import org.springframework.web.bind.annotation.requestParam; import og.springfframework.web.multipart.multipart;/*** File upc. SpringMVC utiliza la implementación de Commons-FileUppload, primero debe introducir sus componentes en el proyecto * 2) Configurar el procesador MultiprArtResolver en el archivo de configuración de SpringMVC (el atributo restricciones en los archivos cargados se puede agregar aquí) * 3) Agregue el metro de parámetro multipartil al método del controlador (este parámetro se utiliza para recibir el contenido del componente de archivo en el formulario) el formulario de la forma de presentar el formulario). enctype = "multipart/form-data" y <input type = "file" name = "****"/>)*PS: Dado que ajaxfileupload.js se usa aquí para lograr una carga sin refrigeración, la forma no se usa en este ejemplo* --------------------------------------------------------------------------------------------------------------------------------------------------------------- Spring-Context-3.2.4.Release.Jar * Spring-Core-3.2.4.Release.jar * Spring-Expression-3.2.4.Release.jar * Spring-JDBC-3.2.4.Release.jar * Spring-OXM-3.2.4.Release.jar * Spring-TX-3.2.4.Release.jar * Spring-Web-3.2.release.JAR * spring-web-3.2.4.release.jar * spring-web-3.2.4.release.jar * spring-webmvc-3.2.4.release.jar * --------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------- Después de cargar el archivo, vuelva al primer plano [0`filePath], 0 significa cargar correctamente (secuencia en la ruta de archivo cargada), 1 significa falla (secuencia a la descripción de la falla) */ @RequestMapping (value = "/ fileupload") public adduser (@RquestParam ("uname") Solicitud, respuesta httpservletResponse) lanza IOException {// Puede recibir otros parámetros al cargar el archivo System.out.println ("Usuario recibido [" + uname + "] solicitud de carga de archivo"); // Si está utilizando el servidor TomCat, el archivo se cargará a //%Tomcat_home%// WebApps // YourWebProject // upload // carpeta // La clase Commons.io.FileUtils se usa para implementar operaciones de carga de archivo aquí. Determinará automáticamente si existe /carga. Si no existe, creará automáticamente String realPath = request.getSession (). GetServletContext (). GetRealPath ("/upload"); // Establezca la respuesta del formato de datos a la respuesta del contenido de primer plano.setContentType ("Text/Plain; Charset = UTF-8"); // Establecer el objeto PrintWriter que responde al contenido de primer plano PrintWriter out = Response.getWriter (); // El nombre original del archivo de carga (es decir, el nombre del archivo antes de cargar) cadena originalFileName = null; // Si acaba de cargar un archivo, solo necesita recibir el archivo en el tipo de archivo multipart, y no es necesario especificar explícitamente el @RequestParam Annotation // Si desea cargar múltiples archivos, debe usar el tipo de múltiplo [] Tipo para recibir el archivo y especificar el formulario de @RquestParam // al cargar múltiples archivos, todos los nombres de los nombres de los nombres de los nombres de la entrada = "File"/" myFiles, de lo contrario, los myfiles en el parámetro no pueden obtener todos los archivos cargados para (multipartfile myfile: myfiles) {if (myFile.isEmpty ()) {out.print ("1` 'Por favor seleccione el archivo y cargándolo"); out.flush (); regresar nulo; } else {originalFileName = myFile.getOriginalFileName (); System.out.println ("Nombre original del archivo:" + originalFileName); System.out.println ("Nombre del archivo:" + myFile.getName ()); System.out.println ("Longitud del archivo:" + myFile.getSize ()); System.out.println ("Tipo de archivo:" + myFile.getContentType ()); System.out.println("======================================================================================================== System.out.println("================================================================================== ===================================================================================================================================================================================. ===================================================================================================================================================================================. ===================================================================================================================================================================================================================. {System.out.Println ("" + OriginalFileName + "] Falló, la pista de pila es la siguiente"); ) //System.out.println (request.getContextPath () + "/upload/" + originalFileName); // La recomendación de [RealPath + "//" + originalFileName] no se recomienda // porque <img src = "archivo: //// d: /aa.jpg"> puede mostrarse por Firefox en Windows, y <img src = "d: /aa.jpg"> FireFox no se reconoce. "/upload/" + originalFileName); out.flush (); regresar nulo; }}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.