ฉันได้อัปโหลดไฟล์เสมอโดยใช้แบบฟอร์มเพื่ออัปโหลดไฟล์ ฉันเคยเห็นผู้คนอัปโหลดไฟล์โดยใช้ JS แต่ดูเหมือนว่าค่อนข้างง่ายดังนั้นฉันจึงไม่ได้สนใจมันมากนัก วันนี้ฉันต้องการใช้วิธีนี้เพื่ออัปโหลดไฟล์และฉันพบปัญหาบางอย่างในช่วงเวลานี้ ดังนั้นจึงมีการบันทึกเพื่อให้คุณสามารถตรวจสอบได้หากคุณพบปัญหาดังกล่าวในอนาคต
สิ่งแรกคือการแนะนำไฟล์ JS และ AjaxFilePilePload ซึ่งไม่จำเป็นต้องพูดมากนัก
จากนั้นมี Ajax ขอที่อยู่พื้นหลัง รหัสมีดังนี้:
<div> <อินพุตประเภท = "ไฟล์" id = "อัปโหลด" ชื่อ = "อัปโหลด" สไตล์ = "ตัวอักษรขนาด: 0; ความทึบ: 0; ความกว้าง: 100%; ความสูง: 100%; ตำแหน่ง: สัมบูรณ์; ซ้าย: 0; ด้านบน: 0; '/test/user/imgupload', // ที่อยู่คำขอแบ็กเอนด์: 'โพสต์', // วิธีการร้องขอเมื่อคุณต้องการส่งพารามิเตอร์ที่กำหนดเองพารามิเตอร์นี้จะต้องตั้งค่าเป็นโพสต์ SecureUri: FALSE, // ว่าจะเปิดใช้งาน SecureUri ค่าเริ่มต้นเป็นเท็จ 'JSON', // ชนิดข้อมูลที่ส่งคืนโดยเซิร์ฟเวอร์สามารถเป็น XML, สคริปต์, JSON, HTML การแจ้งเตือน (json.retmsg);
เมื่อรหัสส่วนหน้าเสร็จสมบูรณ์รหัสพื้นหลังจะได้รับการพัฒนา
แพ็คเกจ com.roc.test; นำเข้า java.io.file; นำเข้า java.util.list; นำเข้า javax.servlet.http.httpservletrequest นำเข้า Javax.servlet.http.httpservletResponse; javax.ws.rs.produces; นำเข้า javax.ws.rs.queryparam; นำเข้า Javax.ws.rs.core.context; นำเข้า Javax.ws.rs.core.mediatype; นำเข้า net.sf.json.jsonobject; org.apache.commons.fileupload.disk.diskfileitemfactory; นำเข้า org.apache.commons.fileupload.servlet.servletFileUpload; นำเข้า org.jboss.resteasy.annotations.providers.jaxb.json.badeghelhech; net.sf.json.jsonobject;/** * อัปโหลดไฟล์ * @author liaowp * */ @controller @path ("/user") คลาสสาธารณะ uploadimg {@path ("/imguPload") @post @produces ("แอปพลิเคชัน/json; charset = utf-8") @consumes อัปโหลด (@QueryParam ("orderId") string orderId,@context httpservletRequest คำขอ,@context httpservletResponse การตอบสนอง) {jsonObject jsonobj = new JsonObject (); String file_path = request.getSession (). getServletContext (). getRealPath ("/")+file.Sparator+"CorpFile"+file.Separator; // ไฟล์ที่เก็บไฟล์สตริง upload_file_path = ""; ไฟล์ไฟล์ = ไฟล์ใหม่ (file_path); if (! file.exists () &&! file.isdirectory ()) {// หากโฟลเดอร์ไม่มีอยู่ให้สร้าง file.mkdir (); upload_file_path = file_path; } else {upload_file_path = file_path; } DiskFileItemFactory Factory = ใหม่ diskFileItemFactory (); // ตั้งค่า Factory Factory.SetRepository (ไฟล์ใหม่ (file_path)); // ตั้งค่าตำแหน่งการจัดเก็บไฟล์ที่เก็บไฟล์โรงงาน Setsizethreshold (2048 * 1024); // set size หากไฟล์มีขนาดเล็กกว่าขนาดที่ตั้งไว้ให้ใส่ในหน่วยความจำ Upload.Setheaderencoding ("UTF-8"); // นี่คือรหัสสำหรับการประมวลผลชื่อไฟล์ภาษาจีน ในความเป็นจริงมีเพียงหนึ่งชื่อสตริงบรรทัดเดียว = ""; รายการ <FileItem> รายการ; jsonObject jsonObj = new jsonObject (); ลอง {list = upload.parserequest (คำขอ); สำหรับ (fileItem item: list) {if (item.isformfield ()) {string name = item.getFieldName (); ค่าสตริง = item.getString ("UTF-8"); } else {string name = item.getFieldName (); ค่าสตริง = item.getName (); filename = name + ".jpg"; if (item.getSize ()> 10485760) {// สวัสดีไฟล์อัปโหลดต้องน้อยกว่า 10m! jsonobj.put ("retcode", "100"); jsonObj.put ("retmsg", "สวัสดีการอัปโหลดไฟล์ควรน้อยกว่า 10m!"):} else {// อัปโหลด item.write สำเร็จ (ไฟล์ใหม่ (upload_file_path, ชื่อไฟล์)); System.out.println (file.Sparator + "CorpFile" + file.Sparator + ชื่อไฟล์); jsonobj.put ("retcode", "0"); jsonobj.put ("retmsg", "สวัสดี, อัปโหลดสำเร็จ!"); }}}}} catch (Exception e) {// อัปโหลด Failed E.printStackTrace (); jsonobj.put ("retcode", "9999"); jsonobj.put ("retmsg", "สวัสดี, การอัปโหลดไฟล์ล้มเหลว,"); } return jsonobj; -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น