Artikel ini telah berbagi dengan Anda fungsi unduhan file di bawah Struts2 untuk referensi Anda. Konten spesifiknya adalah sebagai berikut
Berikut adalah contoh penerapan fungsi unduhan gambar:
1. Struktur Proyek
2. Web.xml
<? Xml Version = "1.0" encoding = "UTF-8"?> <Web-app Versi = "3.0" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: xsi = "http:/www.w3.org/org/2001 =" http:/www.w3.org/org/p21 xsi: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/weee/weB-apping <filter-name> struts 2 </tiler-name> <nift-class> org.apache.struts2.dispatcher.ng.filter.strutsprepareandexecuteFilter </filter-class> </tilter> <filter-Mapping> <Tilter-name> </filter-name> <rilter-pattern> <tilter-name> </filter-name> <rilter-pattern> <tilter--patping> </filter--patping> </filter--name> </quamping> </--patping> </folfol-mlucping> </flun-name> </folfoles> </folfoles> </quamping> <tilter--patping> <tilter--patping> <tilter--pigher> <tiler--patter> <tiler--patter> <creendak-file-list> <creendak-file> index.jsp </celcome-file> </celcome-file-list> <!-Definisi timeout sesi, unit dalam hitungan menit-> <sion-config> <session-timeout> 30 </session-timeout> </sion-config> </web-app>
3.DownloadAction.java
paket com.action; impor java.io.inputstream; impor org.apache.struts2.servletactionContext; impor com.opensymphony.xwork2.actionsupport; Unduh Kelas Publik memperluas ActionSupport {private static final long serialversionuid = 1l; // jalur file jalur string pribadi; // Metode Getter dari Path Atribut String publik getPath () {return path; } // setter metode atribut public void public setPath (string path) {this.path = path; } // return inputStream, metode kunci untuk mengunduh file public java.io.inputStream getDownloadFile () melempar pengecualian {inputStream in = servletActionContext.getSerVletContext (). GetResourCeasStream (getPath ()); kembali; } public String execute () melempar Exception {return Success; }}4.struts.xml
<? Xml Version = "1.0" encoding = "UTF-8"?> <! Doctype Struts Public "-// Apache Software Foundation // DTD Struts Configuration 2.1 // en" "http://struts.apache.org/dtds di Constants in Constants- 2.1.dtd"> <struts> <!-struts> name = "struts.i18n.encoding" value = "UTF-8" /> <!-Konfigurasikan kapasitas maksimum file yang diunggah, Struts2 adalah 2m secara default. Unit ini adalah 1b, 1kb = 1024b, 1m = 1024kb, 1m = 1024*1024b-> <name konstan = "struts.multipart.maxsize" value = "1048576" /> <!-Konfigurasikan paket dalam aplikasi ini dan NICARA NODESTASI PAKET PAKET " /PAKET" /PAKET " /PAKET" /PAKET " /PAKET" /PAKET " /PAKET" /PAKET " /PAKET" /PAKET " /PAKET" /PAKET " /PAKET" /PAKET " /APLEIT APLIKASI INI DAN NICARA" PAKET " /PAKET" /PAKET " /PAKET" /APLEIT APLIKASI " Extends = "Struts-Default"> <action name = "download"> <!-Tetapkan parameter jalur file dan lewati ke file kelas aksi-> <!-<param name = "path">/download/a.jpg </param>-> <!-Download Tipe File, itu, didefinisikan sebagai "stream"-> </param>-"Success" Tipe "SUKSI" SUKSI ", SUKSI" SUKSI "SUKSI" SUKSI " name = "ContentType"> Image/Jpeg </param> <!-Unduh metode pemrosesan file-> <param name = "contentDisposition"> <!-Lampiran berarti lampiran, yaitu, jendela dialog Simpan dibuka selama unduhan, dan nama file mewakili nama file yang ditampilkan selama unduhan-> <!-Jika Anda tidak menulis lampiran; atau menulis inline; Ini berarti inline, yaitu, Anda akan mencoba membuka file yang diunduh di browser, daripada mengunduh-> lampiran; fileName = "a.jpg" </param> <!-Unduh File Output Stream Definisi-> <!-Nilai yang sesuai dengan elemen inputName di sini adalah unduhan. Dalam tindakan tersebut, Anda harus memiliki metode GetDownLoadFile () yang sesuai-> <param name = "inputName"> downloadfile </param> <!-Unduh Ukuran Buffer-> <param name = "bufferSize"> 1024 </param> </result> </action> </package> </struts>
5.index.jsp
<%@ halaman bahasa = "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="external nofollow" > <title>Home</title> </head> <body> <center> Welcome to the homepage, click the link below to download a file<br /> <a href = "download.action? path = < %=" rel = "eksternal nofollow" ./download/a.jpg " %>"> Unduh </a> </denter> </body> </html>
6. Jalur File
Direktori unduhan harus dibuat terlebih dahulu dalam proyek, dan harus ada file A.JPG di dalamnya, jika tidak, unduhan akan gagal.
7. Portal Fungsional
Setelah proyek diterbitkan ke server, gunakan browser untuk mengakses index.jsp di proyek, klik tautan unduhan, dan kotak dialog "Unduh" akan muncul.