一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - struts2實(shí)現(xiàn)文件下載功能

struts2實(shí)現(xiàn)文件下載功能

2020-09-02 10:07hzc543806053 Java教程

這篇文章主要為大家詳細(xì)介紹了struts2實(shí)現(xiàn)文件下載功能,一個(gè)非常常見的功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

文件下載是一個(gè)很常見的功能,用struts2實(shí)現(xiàn)文件下載的步驟:

一)、定義一個(gè)Action類,F(xiàn)ileDownload.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package com.struts2.filedownload;
import java.io.InputStream; 
import org.apache.struts2.ServletActionContext; 
import com.opensymphony.xwork2.ActionSupport;
 
//文件下載
public class FileDownload extends ActionSupport{
  
 private int number ;
 
 private String fileName;
 
 public int getNumber() {
  return number;
 }
 
 public void setNumber(int number) {
  this.number = number;
 }
  
 public String getFileName() {
  return fileName;
 }
 
 public void setFileName(String fileName) {
  this.fileName = fileName;
 }
 
 //返回一個(gè)輸入流,作為一個(gè)客戶端來(lái)說(shuō)是一個(gè)輸入流,但對(duì)于服務(wù)器端是一個(gè) 輸出流
 public InputStream getDownloadFile() throws Exception
 {
  if(1 == number)
  {
   this.fileName = "Dream.jpg" ;
   //獲取資源路徑
   return ServletActionContext.getServletContext().getResourceAsStream("upload/Dream.jpg") ;
  }
   
  else if(2 == number)
  {
   this.fileName = "jd2chm源碼生成chm格式文檔.rar" ;
   //解解亂碼
   this.fileName = new String(this.fileName.getBytes("GBK"),"ISO-8859-1");
   return ServletActionContext.getServletContext().getResourceAsStream("upload/jd2chm源碼生成chm格式文檔.rar") ;
  }
  else
   return null ;
 }
  
 @Override
 public String execute() throws Exception {
   
  return SUCCESS;
 }
 
}

二)、在struts.xml文件中配置相關(guān)信息

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<struts
 <package name="struts2" extends="struts-default"
  <action name="FileDownload" class="com.struts2.filedownload.FileDownload">
   <result name="success" type="stream">
    <param name="contentType">text/plain</param>
    <param name="contentDisposition">attachment;fileName="${fileName}"</param>
    <param name="inputName">downloadFile</param>
    <param name="bufferSize">1024</param>
   </result>
  </action>
  
 </package>
  
</struts>

1.結(jié)果類型必須要寫成 type="stream"  ,與之對(duì)應(yīng)的處理類是 org.apache.struts2.dispatcher.StreamResult

2.涉及到的參數(shù):

struts2實(shí)現(xiàn)文件下載功能

3.

1)  <param name="contentDisposition">attachment;fileName="${fileName}"</param>
     contentDisposition默認(rèn)是 inline(內(nèi)聯(lián)的), 比如說(shuō)下載的文件是文本類型的,就直接在網(wǎng)頁(yè)上打開,不能直接打開的才會(huì)打開下載框自己選擇
2)  attachment :下載時(shí)會(huì)打開下載框
3)  fileName="${fileName}" :在這定義的名字是一個(gè)動(dòng)態(tài)的,該名字是顯示在下載框上的文件名字

4. <param name="inputName">downloadFile</param> ,這個(gè)downloadFile名字要和FileDownload.java類中的getDownloadFile()方法名去掉get 一致

三)用于顯示下載的鏈接界面 filedownload.jsp

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<%@ 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="external nofollow" >
  
 <title>My JSP 'filedownload.jsp' starting page</title>
  
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0"
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css" rel="external nofollow" >
 -->
 
 </head>
 
 <body>
 
 <h2>文件下載內(nèi)容:</h2><br/>
 Dream.jpg:<a href="FileDownload.action?number=1" rel="external nofollow" >點(diǎn)擊下載</a><br/>
 jd2chm源碼生成chm格式文檔.rar:<a href="FileDownload.action?number=2" rel="external nofollow" >點(diǎn)擊下載2</a>
  
  
 </body>
</html>

文件上傳鏈接:
1)Servlet 文件上傳: 點(diǎn)擊打開鏈接
2)Struts2 文件上傳:點(diǎn)擊打開鏈接

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 好 舒服 好 粗 好硬免费视频 | 亚欧毛片基地国产毛片基地 | 亚洲国产精品综合欧美 | 免费看一级大片 | 丝瓜香蕉视频 | 日本丰满www色 | 国产-第1页-草草影院 | 免费网站看v片在线成人国产系列 | 日本阿v在线播放 | 久久免费看少妇高潮A片JA | 国产免费不卡视频 | 精品国产日韩亚洲一区在线 | 四虎影视在线永久免费观看 | 亚洲精品视频网 | 好大好硬好长好爽a网站 | 日本福利视频网站 | 无码欧美喷潮福利XXXX | 亚洲视频一区网站 | 猛操女人| 无人在线观看免费高清视频播放 | 91porn最新地址 | 欧美一级xxxx俄罗斯一级 | 国产精品久久国产三级国电话系列 | 欧美亚洲第一页 | 超逼网| 国产成人99精品免费观看 | 2019国内自拍大神视频 | 婷婷色天使在线视频观看 | 四虎国产精品免费久久久 | 欧美日韩精品亚洲精品v18 | 色戒西瓜 | 国产极品麻豆91在线 | 免费369看片入口 | 成人天堂入口网站 | 草免费视频 | 国产亚洲欧美一区二区三区 | re99热| 日韩欧美国产一区 | 久久精品嫩草影院免费看 | 欧美高清免费一级在线 | 色老板视频在线 |