เพียงแค่ดูรหัสความคิดเห็นทั้งหมดอยู่ภายใน
ก่อนอื่น web.xml
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <web-app version = "2.5" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: xsi = "http://ww.w3.org/200 XSI: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" <servlet-class> org.springframework.web.servlet.dispatcherservlet </servlet-class> <init-param> <param-name> contextconfiglocation </param-name> <param-value> classpath: applicationcontext.xml </param-value> <servlet-mapping> <servlet-name> อัปโหลด </servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <filter> <scription> แก้ปัญหาที่อ่านไม่ออกในการส่งพารามิเตอร์ </คำอธิบาย> <tilter-name> <Tilter-class> org.springframework.web.filter.characterencodingFilter </filter-class> <init-Param> <param-Name> การเข้ารหัส </param-name> <param-value> UTF-8 </param-value> <url-pattern>/*</url-pattern> </ตัวกรอง-แม็ค> </eb-app>
ด้านล่างอยู่ที่ //src//applicationContext.xml
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://ww.w3.org/2001/xml xmlns: mvc = "http://www.springframework.org/schema/mvc" xmlns: บริบท = "http://www.springframework.org/schema/context http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/mvc http://ww.springframework.org/schema http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/context/spring-context-3.2.xsd " โดย Base-Package)-> <!-ที่นี่คุณสามารถอ้างถึงบทความของฉัน http://blog.csdn.net/jadyer/article/details/6038604-> <บริบท: Component-scan base-package = "com.jadyer"/> <! ExceptionResolver-> <MVC: คำอธิบายประกอบที่ขับเคลื่อนด้วย/> <!-เนื่องจาก SpringMVC ถูกตั้งค่าใน web.xml เพื่อสกัดกั้นคำขอทั้งหมดมันจะไม่สามารถอ่านได้เมื่ออ่านไฟล์ทรัพยากรคงที่-> <!-ผ่านการกำหนดค่านี้คุณสามารถระบุทรัพยากรทั้งหมดที่ร้องขอหรืออ้างอิง "/JS/**" location = "/js/"/> <mvc: การแมปทรัพยากร = "/อัปโหลด/**" ตำแหน่ง = "/อัปโหลด/"/> <!-เมื่ออัปโหลดไฟล์โดย SpringMvc คุณต้องกำหนดค่าโปรเซสเซอร์ multipartresolver-> <bean id = "multipartresolver" คุณสมบัติ MaxUploadSize ไม่ได้มีไว้สำหรับไฟล์เดียว แต่สำหรับผลรวมของความจุของไฟล์ทั้งหมด-> <property name = "MaxUploadSize" value = "800000"/> </ebean> <!-เมื่อ SpringMVC เกินขีด จำกัด การอัปโหลด SpringMVC เมื่อตรวจสอบข้อมูลไฟล์ที่อัปโหลดและไม่ได้ป้อนวิธีการควบคุมในเวลานี้-> <bean id = "ExceptionResolver"> <property name = "ExceptionMappings"> <props> <! key = "org.springframework.web.multipart.maxuploadsizeexceedexception"> error_fileupload </prop> </props> </property> </ebean> <bean> <property name = "คำนำหน้า" value = "/web-inf/"/>
ต่อไปนี้เป็นหน้าพรอมต์เมื่ออัปโหลดเนื้อหาไฟล์มีขนาดใหญ่เกินไป //web-inf//jsp//error_fileupload.jsp
<%@ page language = "java" pageencoding = "utf-8"%>
<H1> ไฟล์มีขนาดใหญ่เกินไปโปรดเลือกอีกครั้ง </h1>
ด้านล่างคือหน้าอัปโหลดสำหรับการเลือก index.jsp
<%@ page language = "java" pageencoding = "utf-8"%> <!-สิ่งนี้ไม่สามารถย่อได้เป็น <script type = "text/javascript" src = ".. " // js/jquery-1.10.2.min.js "> </script> src = "<%= request.getContextPath ()%>/js/ajaxfileupload.js"> </script> <script type = "text/javaScript" src = "<%= request.getContextPath ()%>/js/ajaxfileUpload.js" // รูปภาพจะปรากฏขึ้นเมื่ออัปโหลดไฟล์และการอัปโหลดไฟล์เสร็จสิ้นเพื่อซ่อนรูปภาพ // $ ("#loading") ajaxstart (function () {$ (นี่). show ();}) Ajaxcomplete (ฟังก์ชัน () พารามิเตอร์สามารถส่งผ่านและได้รับการทดสอบเป็นการส่วนตัว) url: '$ {pageContext.request.contextpath}/ทดสอบ/fileupload? uname = xuanyu', secureuri: false, // ไม่ว่าจะเป็นการเปิดใช้งานที่ปลอดภัยหรือไม่ XML ฯลฯ ความสำเร็จ: ฟังก์ชั่น (ข้อมูลสถานะ) {// ฟังก์ชั่นการประมวลผล data = data.replace ("<pre>", ''); // ajaxfileupload จะเพิ่มคำต่อท้ายของ <fre> text </pre> ลงในเนื้อหาข้อความที่เซิร์ฟเวอร์ตอบกลับไป data = data.replace ("</pre>", ''); data = data.replace ("<pre>", ''); data = data.replace ("</pre>", ''); data = data.replace ("</pre>", ''); // ในตัวอย่างนี้หลังจากไฟล์อัปโหลดเสร็จสิ้นเซิร์ฟเวอร์จะกลับไปที่เบื้องหน้า [0`filepath] ถ้า (data.substring (0, 1) == 0) {// 0 หมายถึงการอัปโหลดสำเร็จ $ ('#result'). html ("อัพโหลดรูปภาพสำเร็จ <br/>"); } else {$ ('#result'). html ('การอัปโหลดรูปภาพล้มเหลวโปรดลองอีกครั้ง!'); }}, ข้อผิดพลาด: ฟังก์ชั่น (ข้อมูล, สถานะ, e) {// ฟังก์ชั่นการประมวลผล $ ('#result'). html ('การอัปโหลดภาพล้มเหลวโปรดลองอีกครั้ง !!'); }});} </script> <div id = "ผลลัพธ์"> </div> <img id = "uploadimage" src = "http://www.firefox.com.cn/favicon.ico"> <อินพุต type = "id =" myblogimage " onclick = "ajaxfileupload ()"/> <!-รู้เบื้องต้นเกี่ยวกับเว็บไซต์ทางการ ajaxfileupload: http://phpletter.com/our-projects/ajaxfileupload/introduction: jQuery Plug-in AjaxFileUpload สามารถอัปโหลดได้ง่ายและใช้งานง่าย มีผู้ใช้จำนวนมาก มันคุ้มค่ามาก: ลำดับของการแนะนำ JS (ขึ้นอยู่กับ jQuery) และไม่มีรูปแบบในหน้า (มันจะกระตุ้นให้เกิดวิธี AjaxFilePilePload () เมื่อปุ่มถูกคลิก) ข้อผิดพลาดทั่วไปและวิธีแก้ปัญหาดังต่อไปนี้ 1) SyntaxError: หายไป; ก่อนหน้าคำสั่ง -ตรวจสอบว่าเส้นทาง URL สามารถเข้าถึงได้ 2) SyntaxError: ข้อผิดพลาดทางไวยากรณ์ -ตรวจสอบว่าไฟล์ JSP ที่จัดการการดำเนินการส่งมีข้อผิดพลาดไวยากรณ์ 3) ไวยากรณ์: ID คุณสมบัติที่ไม่ถูกต้องหรือไม่ว่า ID คุณสมบัติ 4) ตัวแปร $ ข้อผิดพลาดซึ่งสะดวกกว่าการแจ้งข้อผิดพลาดที่ไม่ถูกต้องข้างต้น -> ในที่สุด fileuploadcontroller.java ที่จัดการการอัปโหลดไฟล์
แพ็คเกจ com.jadyer.controller; นำเข้า java.io.file; นำเข้า java.io.ioexception; นำเข้า java.io.printwriter; นำเข้า javax.servlet.http.httpservletrequest; นำเข้า orgons. org.springframework.stereotype.controller; นำเข้า org.springframework.web.bind.annotation.requestmapping; นำเข้า org.springframework.web.bind.annotation 1) เนื่องจาก SpringMVC ใช้การใช้งาน Commons-Fileupload ก่อนอื่นต้องแนะนำส่วนประกอบของมันลงในโครงการ * 2) กำหนดค่าโปรเซสเซอร์ MultipartResolver ในไฟล์การกำหนดค่า SpringMVC (ข้อ จำกัด แอตทริบิวต์บนไฟล์ที่ได้รับการอัปโหลด enctype = "multipart/form-data" และ <input type = "file" name = "****"/>)*PS: เนื่องจาก AjaxFilePilePload.js ถูกใช้ที่นี่เพื่อให้ได้การอัปโหลดแบบไม่รีเฟรชแบบฟอร์มไม่ได้ใช้ในตัวอย่างนี้* - 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. Spring-web-3.2.4.release.jar * Spring-web-3.2.4.release.jar * Spring-web-3.2.4.release.jar * spring-webmvc-3.2.4.release.jar * - - หลังจากอัปโหลดไฟล์แล้วกลับไปที่เบื้องหน้า [0`filepath], 0 หมายถึงการอัปโหลดสำเร็จ (ลำดับไปยังเส้นทางไฟล์ที่อัปโหลด) 1 หมายถึงความล้มเหลว (ลำดับไปยังคำอธิบายความล้มเหลว) */ @requestmapping (value = "/ fileupload") คำขอ, การตอบสนอง httpservletResponse) พ่น IOException {// คุณสามารถรับพารามิเตอร์อื่น ๆ ในขณะที่อัปโหลดไฟล์ System.out.out.println ("ผู้ใช้ที่ได้รับ [" + Uname + "] คำขออัปโหลดไฟล์"); // หากคุณใช้เซิร์ฟเวอร์ Tomcat ไฟล์จะถูกอัปโหลดไปยัง //%tomcat_home%// webapps // yourwebproject // อัปโหลด // โฟลเดอร์ // คลาส commons.io.fileutils ใช้เพื่อใช้การดำเนินการอัปโหลดไฟล์ที่นี่ มันจะพิจารณาโดยอัตโนมัติว่า /อัปโหลดมีอยู่หรือไม่ หากไม่มีอยู่มันจะสร้าง String realPath = request.getSession (). getServletContext (). getRealPath ("/อัปโหลด" โดยอัตโนมัติ); // ตั้งค่าการตอบสนองรูปแบบข้อมูลเป็นการตอบสนองเนื้อหาเบื้องหน้า SetContentType ("ข้อความ/ธรรมดา; charset = utf-8"); // ตั้งค่าวัตถุ PrintWriter ที่ตอบสนองต่อเนื้อหา PrintWriter Out = Response.getWriter (); // ชื่อเดิมของไฟล์อัปโหลด (นั่นคือชื่อไฟล์ก่อนอัปโหลด) สตริงต้นฉบับ fileName = null; // หากคุณเพิ่งอัปโหลดไฟล์หนึ่งไฟล์คุณจะต้องได้รับไฟล์ในประเภท multipartFile และไม่จำเป็นต้องระบุคำอธิบายประกอบ @RequestParam อย่างชัดเจน // หากคุณต้องการอัปโหลดหลายไฟล์คุณต้องใช้ไฟล์ MultipartFile myfiles มิฉะนั้น myfiles ในพารามิเตอร์ไม่สามารถรับไฟล์ที่อัปโหลดทั้งหมดสำหรับ (multipartfile myfile: myfiles) {ถ้า (myfile.isempty ()) {out.print ("1`please เลือกไฟล์และอัปโหลด"); out.flush (); คืนค่า null; } else {OriginalFilename = myFile.getOriginalFileName (); System.out.println ("ชื่อไฟล์ต้นฉบับ:" + OriginalFilename); System.out.println ("ชื่อไฟล์:" + myfile.getName ()); System.out.println ("ความยาวไฟล์:" + myfile.getSize ()); System.out.println ("ประเภทไฟล์:" + myfile.getContentType ()); System.out.println ("======================================================================================================================== System.out.println ("==================================================================================== - - - {System.out.println ("ไฟล์ [" + OriginalFilename + "] ล้มเหลวแทร็กสแต็กมีดังนี้); [D: /develop/apache-tomcat-6.0.36/webapps/ajaxfileupload//upload/anger birds.jpg] //system.out.println(realpath + "//" //system.out.println (request.getContextPath () + "/อัปโหลด/" + OriginalFilename); // คำแนะนำของ [realpath + "//" + OriginalFilename] ไม่แนะนำ // เพราะ <img src = "ไฟล์: ///// d: /aa.jpg"> สามารถแสดงโดย firefox ใต้ windows และ <img src = "d: /aa.jpg" OriginalFilename); out.flush (); คืนค่า null; -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น