<FORM METHOD="POST" ENCTYPE="หลายส่วน/ฟอร์ม-ข้อมูล" ACTION="/jspSmartUpload/upload.jsp"> <INPUT TYPE="FILE" NAME="MYFILE"> <ประเภทอินพุต="ส่ง"> </รูปแบบ> |
- ชื่อไฟล์: upload.html ผู้แต่ง: Yu Yiqi จาก Zongheng Software Production Center ([email protected]) - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <หัว> <title>อัพโหลดไฟล์</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </หัว> <ร่างกาย> <p> </p> <p align="center">การเลือกอัพโหลดไฟล์</p> <รูปแบบวิธีการ = "โพสต์" ACTION = "jsp/do_upload.jsp" ENCTYPE="หลายส่วน/แบบฟอร์มข้อมูล"> <input type="hidden" name="TEST" value="good"> <ความกว้างของตาราง="75%" border="1" align="center"> <tr> <td><div align="center">1. <ประเภทอินพุต = "FILE" name = "FILE1" size = "30"> </div></td> </tr> <tr> <td><div align="center">2. <ประเภทอินพุต = "FILE" name = "FILE2" size = "30"> </div></td> </tr> <tr> <td><div align="center">3. <ประเภทอินพุต = "FILE" name = "FILE3" size = "30"> </div></td> </tr> <tr> <td><div align="center">4. <ประเภทอินพุต = "FILE" name = "FILE4" size = "30"> </div></td> </tr> <tr> <td><div align="center"> <input type="submit" name="Submit" value="Upload it!"> </div></td> </tr> </ตาราง> </รูปแบบ> </ร่างกาย> </html> |
- ชื่อไฟล์: do_upload.jsp ผู้แต่ง: Yu Yiqi จาก Zongheng Software Production Center ([email protected]) - <%@ หน้า contentType="text/html; charset=gb2312" language="java" นำเข้า = "java.util.*, com.jspsmart.upload.*" errorPage = "" %> <html> <หัว> <title>หน้าประมวลผลการอัพโหลดไฟล์</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </หัว> <ร่างกาย> - // สร้างวัตถุ SmartUpload ใหม่ SmartUpload su = new SmartUpload(); //อัปโหลดการเริ่มต้น su.initialize(pageContext); // กำหนดขีดจำกัดการอัพโหลด // 1. จำกัดความยาวสูงสุดของแต่ละไฟล์ที่อัพโหลด // su.setMaxFileSize(10,000); // 2. จำกัดความยาวของข้อมูลที่อัพโหลดทั้งหมด // su.setTotalMaxFileSize(20,000); // 3. ตั้งค่าไฟล์ที่อนุญาตให้อัปโหลด (จำกัดโดยนามสกุล) อนุญาตเฉพาะไฟล์ doc และ txt เท่านั้น // su.setAllowedFilesList("doc,txt"); // 4. ตั้งค่าไฟล์ที่ห้ามอัพโหลด (จำกัดโดยนามสกุล) ห้ามอัพโหลดไฟล์ด้วย exe, bat, ไฟล์ที่มีนามสกุล jsp, htm, html และไฟล์ที่ไม่มีนามสกุล // su.setDeniedFilesList("exe,bat,jsp,htm,html,,"); //อัพโหลดไฟล์ su.upload(); // บันทึกไฟล์ที่อัพโหลดทั้งหมดไปยังไดเร็กทอรีที่ระบุ int count = su.save("/upload"); out.println(count+"อัพโหลดไฟล์สำเร็จ!<br>"); //ใช้วัตถุคำขอเพื่อรับค่าของพารามิเตอร์ out.println("TEST="+su.getRequest().getParameter("TEST") +"<BR><BR>"); // แยกข้อมูลไฟล์ที่อัพโหลดทีละไฟล์ และบันทึกไฟล์พร้อมกัน สำหรับ (int i=0;i<su.getFiles().getCount();i++) - ไฟล์ com.jspsmart.upload.File = su.getFiles().getFile(i); // ดำเนินการต่อหากไม่มีไฟล์อยู่หาก (file.isMissing()) ดำเนินการต่อ; // แสดงข้อมูลไฟล์ปัจจุบัน out.println("<TABLE BORDER=1>"); out.println("<TR><TD>ชื่อฟอร์ม (FieldName)</TD><TD>" + file.getFieldName() + "</TD></TR>"); out.println("<TR><TD>ความยาวไฟล์ (ขนาด)</TD><TD>" + file.getSize() + "</TD></TR>"); out.println("<TR><TD>ชื่อไฟล์ (ชื่อไฟล์)</TD><TD>" + file.getFileName() + "</TD></TR>"); out.println("<TR><TD>นามสกุลไฟล์ (FileExt)</TD><TD>" + file.getFileExt() + "</TD></TR>"); out.println("<TR><TD>ชื่อเต็มของไฟล์ (FilePathName)</TD><TD>" + file.getFilePathName() + "</TD></TR>"); out.println("</TABLE><BR>"); // บันทึกไฟล์เป็น // file.saveAs("/upload/" + myFile.getFileName()); // บันทึกลงในไดเร็กทอรีที่มีไดเร็กทอรีรากของแอปพลิเคชันเว็บเป็นไดเร็กทอรีรากของไฟล์ // file.saveAs("/upload/" + myFile.getFileName(), su.SAVE_VIRTUAL); // บันทึกลงในไดเร็กทอรีโดยที่ไดเร็กทอรีรากของระบบปฏิบัติการคือไดเร็กทอรีรากของไฟล์ // file.saveAs("c:\temp\" + myFile.getFileName(), su.SAVE_PHYSICAL); - - </ร่างกาย> </html> |
- ชื่อไฟล์: download.html ผู้แต่ง: Yu Yiqi จาก Zongheng Software Production Center ([email protected]) - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <หัว> <title>ดาวน์โหลด</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </หัว> <ร่างกาย> <a href="jsp/do_download.jsp">คลิกเพื่อดาวน์โหลด</a> </ร่างกาย> </html> |
<%@ หน้า contentType="text/html;charset=gb2312" นำเข้า = "com.jspsmart.upload.*" %><% // สร้างวัตถุ SmartUpload ใหม่ SmartUpload su = new SmartUpload(); // เริ่มต้น su.initialize (pageContext); //ตั้งค่า contentDisposition เป็น null เพื่อป้องกันไม่ให้เบราว์เซอร์เปิดไฟล์โดยอัตโนมัติ // ตรวจสอบให้แน่ใจว่าไฟล์ถูกดาวน์โหลดหลังจากคลิกลิงก์ หากไม่ได้ตั้งค่า เมื่อนามสกุลของไฟล์ที่ดาวน์โหลดเป็น //doc เบราว์เซอร์จะเปิดด้วยคำโดยอัตโนมัติ เมื่อนามสกุลเป็น pdf //เบราว์เซอร์จะเปิดขึ้นด้วยโปรแกรม Acrobat su.setContentDisposition(null); // ดาวน์โหลดไฟล์ su.downloadFile("/upload/How to get my pot of gold.doc"); - |
ดาวน์โหลดไฟล์โมฆะสาธารณะ (สตริง s, สตริง s1, สตริง s2, int i) พ่น ServletException, IOException, SmartUploadException - ถ้า(s==null) โยน IllegalArgumentException ใหม่ ("ไฟล์ '" + s + "' ไม่พบ (1,040)"); ถ้า(s.เท่ากับ("")) โยน IllegalArgumentException ใหม่ ("ไฟล์ '" + s + "' ไม่พบ (1,040)"); ถ้า (! isVirtual (s) && m_denyPhysicalPath) โยน SecurityException ใหม่ ("เส้นทางทางกายภาพคือ ปฏิเสธ (1,035)"); ถ้า (เป็นเสมือน) s = m_application.getRealPath (s); ไฟล์ java.io.File = java.io.File ใหม่ FileInputStream fileinputstream = ใหม่ FileInputStream (ไฟล์); ยาว l = file.length(); ธงบูลีน = เท็จ; int k = 0; ไบต์ abyte0[] = ไบต์ใหม่ [i]; ถ้า(s1==เป็นโมฆะ) m_response.setContentType("แอปพลิเคชัน/x-msdownload"); อื่น ถ้า(s1.ความยาว() == 0) m_response.setContentType("แอปพลิเคชัน/x-msdownload"); อื่น m_response.setContentType(s1); m_response.setContentLength((int)l); m_contentDisposition = m_contentDisposition != null ? m_contentDisposition : "ไฟล์แนบ;"; ถ้า(s2 == โมฆะ) m_response.setHeader("การจัดการเนื้อหา", m_contentDisposition + "ชื่อไฟล์=" + toUtf8String(getFileName(s))); อื่น ถ้า(s2.ความยาว() == 0) m_response.setHeader("การจัดการเนื้อหา", m_contentDisposition); อื่น m_response.setHeader("การจัดการเนื้อหา", m_contentDisposition + "ชื่อไฟล์=" + toUtf8String(s2)); ในขณะที่((ยาว)k < l) - int j = fileinputstream.read (abyte0, 0, i); เค += เจ; m_response.getOutputStream().write(abyte0, 0, j); - ไฟล์อินพุทสตรีม.ปิด(); - - * แปลงอักขระภาษาจีนในชื่อไฟล์เป็นสตริงที่เข้ารหัส UTF8 เพื่อให้สามารถแสดงชื่อไฟล์ที่บันทึกไว้ได้อย่างถูกต้องเมื่อดาวน์โหลด * ศูนย์การผลิตซอฟต์แวร์ Zongheng Yu Yiqi 2003.08.01 * @param ชื่อไฟล์ดั้งเดิม* @return ชื่อไฟล์ที่เข้ารหัสใหม่*/ สตริงคงที่สาธารณะ toUtf8String (สตริง s) { StringBuffer sb = StringBuffer ใหม่ (); สำหรับ (int i=0;i<s.length();i++) { ถ่าน c = s.charAt(i); ถ้า (ค >= 0 && ค <= 255) { sb.ผนวก(c); } อื่น { ไบต์[]ข; พยายาม { b = Character.toString(c).getBytes("utf-8"); } จับ (ข้อยกเว้นเช่น) { System.out.println(เช่น); b = ไบต์ใหม่ [0]; - สำหรับ (int j = 0; j < b.length; j++) { int k = b[j]; ถ้า (k < 0) k += 256; sb.append("%" + Integer.toHexString(k) toUpperCase()); - - - กลับ sb.toString(); - |