欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Struts2實現(xiàn)文件下載功能代碼分享(文件名中文轉(zhuǎn)碼)

 更新時間:2016年06月02日 14:26:50   作者:laozhan1028  
這篇文章主要介紹了Struts2實現(xiàn)文件下載功能代碼分享(文件名中文轉(zhuǎn)碼)的相關(guān)資料,需要的朋友可以參考下

struts2文件下載功能實現(xiàn)代碼如下所示:

Action文件

public class DownLoadAction extends ActionSupport { 
/** 
* 
*/ 
private static final long serialVersionUID = 5879762231742395104L; 
private String fileName;//用戶請求的文件名 
private String inputPath;//下載資源的路徑(在struts配置文件中設(shè)置) 
public void setInputPath(String inputPath) { 
this.inputPath = inputPath; 
} 
public String getInputPath() { 
return inputPath; 
} 
public void setFileName(String fileName) { 
this.fileName = fileName; 
} 
public String getFileName() { 
return fileName; 
} 
public String downloadFile() throws Exception { 
ServletContext context = ServletActionContext.getServletContext(); 
String downloadDir = context.getRealPath("/upload"); 
String downloadFile = context.getRealPath(inputPath); 
//防止用戶請求不安全的資源 
if(!downloadFile.startsWith(downloadDir)) { 
return null; 
} 
return "download_success"; 
} 
/* 
* 獲取輸入流資源 
*/ 
public InputStream getInputStream() throws Exception { 
String path = inputPath + File.separatorChar + new String(fileName.getBytes("ISO-8859-1"), "UTF-8"); 
return ServletActionContext.getServletContext().getResourceAsStream(path); 
} 
/* 
* 獲取下載時文件默認(rèn)的文件名 
*/ 
public String getDownloadFileName() { 
String downloadFileName = fileName; 
try { 
downloadFileName = URLEncoder.encode(downloadFileName, "ISO-8859-1"); 
} catch (UnsupportedEncodingException e) { 
e.getMessage(); 
e.printStackTrace(); 
} 
return downloadFileName; 
} 
} 

jsp文件:

<li> 
<a href="<%=path%>/download_DownLoadAction_downloadFile.action?fileName=dwr.jar">dwr.jar文件下在</a> 
</li> 
<li> 
<a href="<%=path%>/download_DownLoadAction_downloadFile.action?fileName=Struts2教程.pdf">Struts2教程.pdf文件下在</a> 
</li> 

struts.xml:

<action name="download_*_*" class="com.wang.action.{1}" method="{2}"> 
<param name="inputPath">/upload</param> 
<!-- result type設(shè)置為stream --> 
<result name="download_success" type="stream"> 
<!-- MIME類型 --> 
<param name="contentType">application/octet-stream</param> 
<!-- inputName的值與action獲取輸入流資源的方法名相對應(yīng)(action中定義getInputStream方法,并且返回類型為InputStream) --> 
<param name="inputName">inputStream</param> 
<!-- 設(shè)置帶附件的文件 動態(tài)獲取文件名(action中定義getDownloadFileName方法) --> 
<param name="contentDisposition">attachment;filename="${downloadFileName}"</param> 
<!-- 設(shè)置緩沖大小 --> 
<param name="bufferSize">2048</param> 
</result> 
</action> 

以上所述是小編給大家介紹的Struts2實現(xiàn)文件下載功能代碼分享(文件名中文轉(zhuǎn)碼)的相關(guān)內(nèi)容,希望對大家有所幫助!

相關(guān)文章

  • Java輕松掌握面向?qū)ο蟮娜筇匦苑庋b與繼承和多態(tài)

    Java輕松掌握面向?qū)ο蟮娜筇匦苑庋b與繼承和多態(tài)

    本文主要講述的是面向?qū)ο蟮娜筇匦裕悍庋b,繼承,多態(tài),內(nèi)容含括從封裝到繼承再到多態(tài)的所有重點內(nèi)容以及使用細(xì)節(jié)和注意事項,內(nèi)容有點長,請大家耐心看完
    2022-05-05
  • java代碼實現(xiàn)雙向鏈表

    java代碼實現(xiàn)雙向鏈表

    這篇文章主要為大家詳細(xì)介紹了java代碼實現(xiàn)雙向鏈表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • java實現(xiàn)釘釘機器人消息推送的示例代碼

    java實現(xiàn)釘釘機器人消息推送的示例代碼

    這篇文章主要介紹了java實現(xiàn)釘釘機器人消息推送的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 簡述Java編程之關(guān)系操作符

    簡述Java編程之關(guān)系操作符

    這篇文章主要介紹了簡述Java編程中的關(guān)系操作符,同時對比較類作了簡單介紹,需要的朋友可以參考下
    2017-09-09
  • 淺談java中為什么重寫equals后需要重寫hashCode

    淺談java中為什么重寫equals后需要重寫hashCode

    今天帶各位學(xué)習(xí)一下java中為什么重寫equals后需要重寫hashCode,文中有非常詳細(xì)的圖文介紹及代碼示例,對正在學(xué)習(xí)java的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • IDEA使用SequenceDiagram插件繪制時序圖的方法

    IDEA使用SequenceDiagram插件繪制時序圖的方法

    這篇文章主要介紹了IDEA使用SequenceDiagram插件繪制時序圖的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 基于java高并發(fā)處理方案

    基于java高并發(fā)處理方案

    這篇文章主要介紹了基于java高并發(fā)處理方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 一文帶你吃透Java中的String類

    一文帶你吃透Java中的String類

    在 Java 中,字符串是一種常見的數(shù)據(jù)類型,經(jīng)常用于存儲一些文本信息,而String類則是Java提供的專門用于字符串操作的類,本文就來和大家聊聊String類的常用方法與實現(xiàn)原理吧
    2023-05-05
  • Java反射如何修改private final成員變量值

    Java反射如何修改private final成員變量值

    這篇文章主要介紹了Java反射如何修改private final成員變量值,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • 初識Java一些常見的數(shù)據(jù)類型

    初識Java一些常見的數(shù)據(jù)類型

    這篇文章主要介紹Java一些常見的數(shù)據(jù)類型,Java是一種優(yōu)秀的程序設(shè)計語言,它具有令人賞心悅目的語法和易于理解的語義,下面文章小編就來簡單介紹為什么說Java是最好的語言并且介紹它的各種常見類型,需要的朋友可以參考一下
    2021-10-10

最新評論