<FORM METHOD="POST" ENCTYPE="متعددة الأجزاء/بيانات النموذج" ACTION="/jspSmartUpload/upload.jsp"> <نوع الإدخال = "FILE" NAME = "MYFILE"> <نوع الإدخال = "إرسال"> </فورم> |
<!--
اسم الملف: upload.html
المؤلف: Yu Yiqi من مركز Zongheng لإنتاج البرمجيات ([email protected])
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<أتش تي أم أل>
<الرأس>
<title>تحميل الملف</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</الرأس>
<الجسم>
<p> </p>
<p align="center">اختيار ملف التحميل</p>
<طريقة النموذج = "POST" ACTION = "jsp/do_upload.jsp"
ENCTYPE = "متعدد الأجزاء/بيانات النموذج">
<نوع الإدخال = "مخفي" اسم = "اختبار" قيمة = "جيد">
<عرض الجدول = "75%" الحدود = "1" محاذاة = "المركز">
<تر>
<td><div align="center">1.
<نوع الإدخال = "FILE" الاسم = "FILE1" الحجم = "30">
</div></td>
</tr>
<تر>
<td><div align="center">2.
<نوع الإدخال = "FILE" الاسم = "FILE2" الحجم = "30">
</div></td>
</tr>
<تر>
<td><div align="center">3.
<نوع الإدخال = "FILE" الاسم = "FILE3" الحجم = "30">
</div></td>
</tr>
<تر>
<td><div align="center">4.
<نوع الإدخال = "FILE" الاسم = "FILE4" الحجم = "30">
</div></td>
</tr>
<تر>
<td><div align="center">
<input type = "submit" name = "إرسال" value = "تحميله!">
</div></td>
</tr>
</الجدول>
</فورم>
</الجسم>
</html> |
<%-- اسم الملف: do_upload.jsp المؤلف: Yu Yiqi من مركز Zongheng لإنتاج البرمجيات ([email protected]) --%> <%@ page contentType="text/html; charset=gb2312" language="java" import="java.util.*,com.jspsmart.upload.*" errorPage="" %> <أتش تي أم أل> <الرأس> <title>صفحة معالجة تحميل الملفات</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </الرأس> <الجسم> <% // إنشاء كائن SmartUpload جديد SmartUpload su = new SmartUpload(); // تهيئة التحميل su.initialize(pageContext); // تعيين حدود التحميل // 1. حدد الحد الأقصى لطول كل ملف تم تحميله. // su.setMaxFileSize(10000); // 2. تحديد طول إجمالي البيانات التي تم تحميلها. // su.setTotalMaxFileSize(20000); // 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 file = su.getFiles().getFile(i); // تابع إذا كان الملف غير موجود if (file.isMissing()) continue; // عرض معلومات الملف الحالي out.println("<TABLE BORDER=1>"); out.println("<TR><TD>اسم النموذج (اسم الحقل)</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 لإنتاج البرمجيات ([email protected]) --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <أتش تي أم أل> <الرأس> <العنوان>تنزيل</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </الرأس> <الجسم> <a href="jsp/do_download.jsp">انقر للتنزيل</a> </الجسم> </html> |
<%@ page contentType="text/html;charset=gb2312"
import="com.jspsmart.upload.*" %><%
// إنشاء كائن SmartUpload جديد SmartUpload su = new SmartUpload();
// تهيئة su.initialize(pageContext);
// اضبط contentDisposition على قيمة خالية لمنع المتصفح من فتح الملف تلقائيًا.
// تأكد من تنزيل الملف بعد النقر على الرابط. إذا لم يتم تعيينه، عندما يكون امتداد الملف الذي تم تنزيله هو //doc، فسيقوم المتصفح بفتحه تلقائيًا باستخدام كلمة. عندما يكون الامتداد pdf
// سيتم فتح المتصفح باستخدام برنامج أكروبات.
su.setContentDisposition(null);
// تنزيل الملف su.downloadFile("/upload/كيف أحصل على مجموعتي الأولى من الذهب.doc");
%> |
ملف تنزيل الفراغ العام (String s، String s1، String s2، int i)
يلقي ServletException، IOException، SmartUploadException
{
إذا (ق == فارغة)
طرح IllegalArgumentException("File '" + s +
"" غير موجود (1040).");
إذا (s.equals(""))
طرح IllegalArgumentException("File '" + s +
"" غير موجود (1040).");
إذا (!isVirtual(s) && m_denyPhysicalPath)
رمي SecurityException الجديد ("المسار الفعلي هو
تم رفضه (1035).");
إذا (هو الظاهري (ق))
s = m_application.getRealPath(s);
java.io.File file = new java.io.File(s);
FileInputStream fileinputstream = new FileInputStream(file);
طويل l = file. length();
علامة منطقية = خطأ؛
كثافة العمليات ك = 0؛
بايت abyte0[] = بايت جديد[i];
إذا (s1 == فارغة)
m_response.setContentType("application/x-msdownload");
آخر
إذا (s1.length () == 0)
m_response.setContentType("application/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.length () == 0)
m_response.setHeader("الترتيب للمحتوى"،
m_contentDisposition);
آخر
m_response.setHeader("الترتيب للمحتوى"،
m_contentDisposition + " filename=" + toUtf8String(s2));
بينما ((طويل) ك <ل)
{
int j = fileinputstream.read(abyte0, 0, i);
ك += ي;
m_response.getOutputStream().write(abyte0, 0, j);
}
fileinputstream. Close();
}
/**
* تحويل الأحرف الصينية في اسم الملف إلى سلسلة مشفرة UTF8 بحيث يمكن عرض اسم الملف المحفوظ بشكل صحيح عند التنزيل.
* مركز إنتاج البرمجيات Zongheng يو Yiqi 2003.08.01
* @param اسم الملف الأصلي* @return اسم الملف المعاد ترميزه*/
سلسلة ثابتة عامة toUtf8String(String s) {
StringBuffer sb = new StringBuffer();
for (int i=0;i<s.length();i++) {
شار ج = s.charAt(i);
إذا (ج >= 0 && ج <= 255) {
sb.append(c);
} آخر {
بايت [] ب؛
يحاول {
b = Character.toString(c).getBytes("utf-8");
} قبض (استثناء على سبيل المثال) {
System.out.println(ex);
ب = بايت جديد[0];
}
لـ (int j = 0; j < b.length; j++) {
int k = b[j];
إذا (ك < 0) ك += 256؛
sb.append("%" + Integer.toHexString(k).
toUpperCase());
}
}
}
إرجاع sb.toString();
} |