1. تحميل ملف Struts2
تطبيق تحميل الملف لـ Struts2 بسيط للغاية ويمكن إكماله في بضع خطوات بسيطة ؛
يلاحظ:
(1) علامة struts2 لتحميل الملف هي: <s: file name = "" label = "expload"/>
(2) المتطلب السابق لتحميل الملف هو طريقة سمة النموذج = "post" enctype = "multipart/form-data" ؛
(3) يجب أن يتضمن تطبيق الويب مشتركًا في filepload.jar و common-io.jar ، لأن محلل التحميل الافتراضي لـ Struts2 يستخدم Jakarta ؛
(4) يمكن تكوين الحد الأقصى لحجم الملف المسموح به في struts.xml: <name constant = "struts.multipart.maxSize" value = "......"/> ، الافتراضي هو 2M ؛
1. تحميل الملف العادي <BR /> قواعد التنفيذ:
(1) قم بتعيين عنصر تحكم النموذج في JSP <s: file name = "upload" label = "upload"/>
(2) تحديد السمات في العمل:
تحميل الملف الخاص ؛ // يتضمن محتوى الملف
سلسلة خاصة تحميل FloadFilename ؛ // اسم الملف الذي تم تحميله ؛
سلسلة خاصة exploadContentType ؛ // نوع mime من ملف التحميل ؛
سيتم تعيين هذه السمات تلقائيًا عند تحميل الملف ؛
(3) أكمل وظيفة كتابة القرص في التنفيذ () ؛
مثال رمز:
expload01Action.java
حزمة org.upload.action ؛ استيراد java.io.file ؛ استيراد java.io.fileInputStream ؛ استيراد java.io.fileOutputStream ؛ استيراد org.apache.struts2.ServleTActionContext ؛ استيراد com.opensymphony.xwork2.actionsupport ؛ الطبقة العامة expload01Action يمتد الإجراءات Upport {private file expload ؛ سلسلة خاصة تحميل FloadFilename ؛ سلسلة خاصة exploadContentType ؛ اسم السلسلة الخاصة ؛ String Public Execute () يلقي استثناء {string path = servleTactionContext.getServletContext (). اسم ملف السلسلة = path+file.separator+name ؛ FileInputStream في = جديد fileInputStream (تحميل) ؛ FileOutputStream Out = fileOutputStream جديد (اسم الملف) ؛ بايت [] ب = بايت جديد [1024] ؛ int len = 0 ؛ بينما ((len = in.read (b))> 0) {out.write (b ، 0 ، len) ؛ } out.close () ؛ العودة النجاح } الملف العام getUpload () {return upload ؛ } public void setupload (تحميل الملف) {this.upload = upload ؛ } السلسلة العامة getUploAdfilename () {return UploadFilename ؛ } public void setuploadfilename (سلسلة exploadFiLename) {this.uploadfilename = UploadFilename ؛ } السلسلة العامة getUploAdContentType () {return UploadContentType ؛ } public void setuploadContentType (سلسلة uploadContentType) {this.uploadContentType = UploadContentType ؛ } السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {this.name = name ؛ }} Struts.xml
<؟ name = "struts.custom.i18n.resources" value = "message"> </statent> <package name = "default" namepace = "/" extendes = "struts-default"> <action name = "topload0*"> <param name = "name"
1.jsp
<٪@ page language = "java" import = "java.util.*" pageencoding = "utf-8" ٪> <٪@ taglib prefix = "s" uri = "/struts-tags" ٪> <! doctype html public "-// W3C // dtd html 4.01 "1.JSP" صفحة بدء التشغيل </title> </head> <body> <s: form action = "upload01" method = "post" enctype = "multipart/form-data"> <s
2. استخدم المقاطعات للتصفية
طريقة تنفيذ التصفية يدويًا بسيطة للغاية ، وهي استخدام التحقق من الإدخال للتصفية ، أي التصفية في التحقق من صحة () ؛
طريقة التقاطع التي نريد التحدث عنها هنا هي طريقة جيدة. يجب تكوينه فقط في ملف التكوين. لديها مرونة جيدة ويمكن أن تحد من نوع الملف وحجم الملف. إذا كان الملف الذي تم تحميله لا يفي بالمتطلبات ، فسيقوم بإرجاع العرض المنطقي للإدخال ؛
خطوات لتكوين اعتراض:
(1) اعتراض تحميل الملف هو fileUpload ؛
(2) المعلمات المعطاة مطلوبة لتكون الأداء و mainstumsize ؛
(3) بعد اعتراض fileUpload ، تحتاج إلى إضافة <interceptor-ref name = "defaultStack"/>
مثال رمز:
نظرًا لأن التصفية من خلال اعتراض لا يتطلب سوى تكوين Struts.xml ، فإن تكوين Struts.xml فقط.
<؟ name = "struts.custom.i18n.resources" value = "message"> </statent> <package name = "default" namepace = "/" extends = "struts-default"> <action name = "upload0*" name = "maximumsize"> 1024*1024 </param> </2010- Ref> <interceptor-ref name = "defaultStack"> </stilection-ref> <param name = "name"> 1.jpg </pare>
نحتاج أيضًا إلى رسالة الخطأ بعد فشل تحميل ملف التكوين ، ونحن بحاجة إلى تكوينها في ملف الموارد الدولية العالمية:
struts.messages.error.content.type.not.allowed = نوع الملف لا يتطابق
2. تنزيل ملف Struts2
عندما نتعلم بروتوكولات Servlet و HTTP ، يمكننا بالفعل تطبيق تنزيلات الملفات ، أي كتابة رأس تحديد المحتوى. هذا هو مبدأ التنفيذ لـ Struts2 ، لكنه يوفر تغليفًا أفضل ؛
يستخدم نوع نتيجة الدفق من Struts2 خصيصًا لتنزيل تنزيلات الملفات ؛
(1) تكوين نوع نتيجة الدفق في Struts.xml ، وتكوين contentType ، contentDisposition ، و phansization المعلمات. نموذج:
<action name = "download"> <result type = "dreat"
(2) إنشاء إدخال عام GetInputStream () يلقي الاستثناء في العمل ؛ الطريقة ، يتم استخدام هذه الطريقة للحصول على دفق الإدخال للملف الذي تم تنزيله ؛
تنزيل java
حزمة org.download.action ؛ استيراد java.io.inputstream ؛ استيراد org.apache.struts2.ServleTActionContext ؛ استيراد com.opensymphony.xwork2.actionsupport ؛ يمتد تنزيل الفئة العامة ActionSupport {public inputstream getInputStream () يلقي استثناء {return servletactionContext.getServletContext (). } السلسلة العامة تنفيذ () يلقي استثناء {Return Success ؛ }} Struts.xml
<action name = "download"> <result type = "dream" name = "success"> <param name = "contentType"> image/jpeg </param> <param name = "contentDisposition"> filename = "
يمكنك إكمال التنزيل.
هذا كل شيء بالنسبة لك لتقديم تطبيق ملفات التحميل وتنزيل STRUTS2 في Java. شكرا لك على قراءتك.