JavaWeb利用struts實(shí)現(xiàn)文件下載時改變文件名稱
更新時間:2016年06月29日 10:38:19 投稿:lijiao
這篇文章主要為大家詳細(xì)介紹了JavaWeb利用struts實(shí)現(xiàn)文件下載時改變文件名稱的相關(guān)資料,需要的朋友可以參考下
先看看效果圖:

package com.fenghuo.struts.download;
import java.net.URLEncoder;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DownloadAction;
import com.fenghuo.music.util.FileUtils;
public class DownLoad extends DownloadAction {
@Override
protected StreamInfo getStreamInfo(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
//獲取資源文件的名稱
String resname = request.getParameter("resname");
//利用struts下載資源
return new DownloadAction.ResourceStreamInfo("audio/x-mpeg", this
.getServlet().getServletContext(), "/resource/music/" + resname);
}
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
//向?yàn)g覽器發(fā)送消息頭,使文件以附件的方式打開,并找到資源名對應(yīng)的文件名稱發(fā)送給瀏覽器
String resname = request.getParameter("resname");
FileUtils fu = new FileUtils(this.getServlet().getServletContext());
Map<String,String> musmap = fu.getMusmap();
String name = musmap.get(resname);
//同時對文件名進(jìn)行編碼。在FireFox下還是有亂碼,不明白原因,望指教。
response.setHeader("content-disposition", "attachment;filename="
+ URLEncoder.encode(name, "UTF-8"));
return super.execute(mapping, form, request, response);
}
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
java.lang.Instrument 代理Agent使用詳細(xì)介紹
這篇文章主要介紹了java.lang.Instrument 代理Agent使用詳細(xì)介紹的相關(guān)資料,附有實(shí)例代碼,幫助大家學(xué)習(xí)參考,需要的朋友可以參考下2016-11-11
springboot啟動后和停止前執(zhí)行方法示例詳解
這篇文章主要介紹了springboot啟動后和停止前執(zhí)行方法,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-08-08
java實(shí)現(xiàn)簡單銀行管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡單銀行管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-12-12
簡單了解Java關(guān)鍵字throw和throws的區(qū)別
這篇文章主要介紹了簡單了解Java關(guān)鍵字throw和throws的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11
基于Java Springboot + Vue + MyBatis實(shí)現(xiàn)音樂播放系統(tǒng)
這篇文章主要介紹了一個完整的音樂播放系統(tǒng)是基于Java Springboot + Vue + MyBatis編寫的,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-08-08
劍指Offer之Java算法習(xí)題精講鏈表與字符串及數(shù)組
跟著思路走,之后從簡單題入手,反復(fù)去看,做過之后可能會忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會發(fā)現(xiàn)質(zhì)的變化2022-03-03
Java設(shè)計(jì)模式之裝飾者模式詳解和代碼實(shí)例
這篇文章主要介紹了Java設(shè)計(jì)模式之裝飾者模式詳解和代碼實(shí)例,Decorator模式(別名Wrapper):動態(tài)將職責(zé)附加到對象上,若要擴(kuò)展功能,裝飾者提供了比繼承更具彈性的代替方案,需要的朋友可以參考下2014-09-09
java實(shí)現(xiàn)輕輕松松控制臺斗地主的示例代碼
這篇文章主要介紹了java實(shí)現(xiàn)輕輕松松控制臺斗地主,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04

