<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();
- |