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