struts2實(shí)現(xiàn)簡單文件下載功能
Struts2提供了stream結(jié)果類型,該結(jié)果類型是專門用于支持文件下載功能的。配置stream類型的結(jié)果需要指定以下4個(gè)屬性。
contentType:指定被下載文件的文件類型
inputName:指定被下載文件的入口輸入流
contentDisposition:指定下載的文件名
bufferSize:指定下載文件時(shí)的緩沖大小
struts2文件下載示例:
1.處理文件下載的Action:
/**
* Description:Struts2控制文件下載
* Author: Eleven
* Date: 2018/1/24 10:39
*/
public class FileAction extends ActionSupport{
//該成員變量對應(yīng)著struts.xml中inputName的值,并為其提供get方法
private InputStream targetFile;
//文件下載
public String download(){
//指定被下載資源的位置,并返回對應(yīng)的輸入流
String path = "/WEB-INF/images/lib.zip";
//利用getResourceAsStream()將指定文件轉(zhuǎn)為對應(yīng)的輸入流
targetFile = ServletActionContext.getServletContext().getResourceAsStream(path);
return SUCCESS;
}
//提供get方法
public InputStream getTargetFile() {
return targetFile;
}
}
文件下載,首先得要有被下載的文件資源,這里我將被下載文件放在了項(xiàng)目的WEB-INF/images的路徑下面,可根據(jù)自己的需求來,然后直接用ServletContext提供的getResourceAsStream()方法返回指定文件對應(yīng)的輸入流。
2.配置struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<package name="default" namespace="/" extends="struts-default">
<action name="file_*" class="eleven.action.FileAction" method="{1}">
<!--文件下載-->
<!--配置結(jié)果類型為stream的結(jié)果-->
<result type="stream">
<!--指定下載文件的文件類型-->
<param name="contentType">application/zip</param><!--image/jpg-->
<!--指定action中返回被下載文件的InputStream的名稱-->
<param name="inputName">targetFile</param>
<param name="contentDisposition">filename="aaa.zip"</param>
<!--指定下載文件的緩沖大小-->
<param name="bufferSize">4096</param>
</result>
</action>
</package>
</struts>
在瀏覽器地址欄中輸入對應(yīng)的文件下載的訪問路徑,如http://localhost:8080/demo/file_download,即可下載文件了。\
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- JSP開發(fā)之Struts2實(shí)現(xiàn)下載功能的實(shí)例
- struts2實(shí)現(xiàn)文件下載功能
- java中Struts2 的文件上傳和下載示例
- Struts2實(shí)現(xiàn)文件下載功能代碼分享(文件名中文轉(zhuǎn)碼)
- java中struts2實(shí)現(xiàn)簡單的文件上傳與下載
- java中struts2實(shí)現(xiàn)文件上傳下載功能
- JavaWeb中struts2實(shí)現(xiàn)文件上傳下載功能實(shí)例解析
- JavaEE中struts2實(shí)現(xiàn)文件上傳下載功能實(shí)例解析
- java中struts2實(shí)現(xiàn)文件上傳下載功能實(shí)例解析
- struts2實(shí)現(xiàn)文件下載功能
相關(guān)文章
java跳出多重循環(huán)的三種實(shí)現(xiàn)方式
文章主要介紹了Java中跳出多重循環(huán)的三種方式:使用`break`配合標(biāo)簽、在布爾表達(dá)式中添加判斷變量、以及使用`try-catch`制造異常,每種方式都有具體的代碼示例,并輸出了相應(yīng)的執(zhí)行結(jié)果2025-01-01
深入了解Java線程池:從設(shè)計(jì)思想到源碼解讀
這篇文章將從設(shè)計(jì)思想到源碼解讀,帶大家深入了解Java的線程池,文中的示例代碼講解詳細(xì),對我們的學(xué)習(xí)或工作有一定的幫助,需要的可以參考一下2021-12-12
Spring?Boot詳解五種實(shí)現(xiàn)跨域的方式
跨域指的是瀏覽器不能執(zhí)?其他?站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器對javascript施加的安全限制,這篇文章主要介紹了springboot實(shí)現(xiàn)跨域的5種方式,需要的朋友可以參考下2022-06-06

