لقد شاركت هذه المقالة معك وظيفة تنزيل الملف ضمن Struts2 للرجوع إليها. المحتوى المحدد كما يلي
فيما يلي مثال على تطبيق وظيفة تنزيل الصورة:
1. هيكل المشروع
2. web.xml
<؟ XSI: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" <filter-name> Struts 2 </filter-name> <lipter-class> org.apache.struts2 <!-SETTESS SELISS PAGE-> <-list-file-list> <lispile> index.jsp </iship-file> </rial-file-list> <!-تعريف مهلة الجلسة ، الوحدة في الدقائق-> <Session-config> <tickt-timeout> 30 </session-timeout> </session-config> </web-app>
3.DownloadAction.java
حزمة com.action ؛ استيراد java.io.inputstream ؛ استيراد org.apache.struts2.ServleTActionContext ؛ استيراد com.opensymphony.xwork2.actionsupport ؛ يمتد تنزيل الطبقة العامة ActionSupport {Private Static Final Long SerialVersionuid = 1L ؛ // ملف مسار السلسلة الخاصة ؛ // getter method of path attribute public getPath () {return path ؛ }. }. العودة في } السلسلة العامة تنفيذ () يلقي استثناء {Return Success ؛ }}4.struts.xml
<؟ name = "struts.i18n.encoding" value = "UTF-8" /> <!-تكوين الحد الأقصى للسعة للملفات المحملة ، STRUTS2 هو 2M افتراضيًا. الوحدة هي 1b ، 1kb = 1024b ، 1m = 1024kb ، 1m = 1024*1024b-> <name constant = "struts.multipart.maxsize" value = "1048576" /> <!-تكوين الحزمة في هذا التطبيق ويرث حزمة الظهر- تمديد = "struts-default"> <action name = "download"> <!-قم بتعيين معلمات مسار الملف وقم بتمريره إلى ملف فئة الإجراء-> <!-<param name = "path"/download/a.jpg </param>-> <!-تنزيل نوع الملف ، وهو تعريف "دفق"- name = "contentType"> image/jpeg </param> <!-تنزيل طريقة معالجة الملفات-> <param name = "contentDisposition"> <!-يعني المرفق المرفق ، أي ، يتم فتح نافذة الحوار أثناء التنزيل ، ويمثل اسم الملف اسم الملف الذي يتم عرضه أثناء التنزيل-> <!-إذا لم تكتب المرفق ؛ أو اكتب خطًا مضمّنًا ؛ وهذا يعني مضمّنًا ، أي ستحاول فتح الملف الذي تم تنزيله في المتصفح ، بدلاً من التنزيل-> المرفق ؛ Filename = "A.JPG" </param> <!-تنزيل تعريف دفق إخراج الملفات-> <!-القيمة المقابلة لعنصر الإدخال هنا هي تنزيل. في الإجراء ، يجب أن يكون لديك طريقة getDownloadFile () المقابلة-> <param name = "inputName"> downloadFile </param> <!-تنزيل حجم المخزن المؤقت-> <param name = "BufferSize"> 1024 </param> </sult> </action
5.index.jsp
<٪@ page language = "java" import = "java.util.*" pageencoding = "utf-8" ٪> <٪ string path = request.getContextPath () ؛ String BasePath = request.getScheme ()+": //"+request.getServerName ()+":"+request.getServerPort ()+path+"/" ؛ ٪> <! doctype html public "-// w3c // dtd html 4.01 transitional // en"> <html> <head> <base href = "<٪ = basepath ٪>" rel = "nofollow"> <title> الصفحة الرئيسية </head> <body> href = "download.action؟ path = <٪ =" rel = "nofollow الخارجي" ./Download/A.JPG "٪>"
6. مسار الملف
يجب إنشاء دليل التنزيل مقدمًا في المشروع ، ويجب أن يكون هناك ملف A.JPG بداخله ، وإلا فإن التنزيل سوف يفشل.
7. بوابة وظيفية
بعد نشر المشروع على الخادم ، استخدم المستعرض للوصول إلى index.jsp في المشروع ، انقر فوق رابط التنزيل ، وسيظهر مربع الحوار "التنزيل".