激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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

服務(wù)器之家 - 編程語言 - 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è)客戶端來說是一個(gè)輸入流,但對于服務(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"  ,與之對應(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)的), 比如說下載的文件是文本類型的,就直接在網(wǎng)頁上打開,不能直接打開的才會打開下載框自己選擇
2)  attachment :下載時(shí)會打開下載框
3)  fileName="${fileName}" :在這定義的名字是一個(gè)動態(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)擊打開鏈接

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧日一级片 | 国产免费一级 | 孕妇体内谢精满日本电影 | 欧美交在线 | 国产亚洲精品视频中文字幕 | 欧美日本在线播放 | 国产精品视频一区二区三区四区国 | 国产精品免费久久久久久 | 午夜国产在线观看 | 中文字幕欧美视频 | 欧美成人午夜影院 | 精品一区二区三区免费 | 免费看性xxx高清视频自由 | 久久久久久麻豆 | 成人一级片毛片 | www.狠狠操.com| 宅男视频在线观看免费 | 中文字幕在线播放视频 | 成人性视频在线 | 黄色av片三级三级三级免费看 | 欧美日韩爱爱视频 | 日韩视频www| 欧美一级高潮 | 午夜精品久久久久久毛片 | 久久久久久久黄色片 | 成人毛片在线 | 在线播放污 | 特级黄aaaaaaaaa毛片 | 国产羞羞视频免费在线观看 | 久久影院一区二区三区 | 神马久久精品综合 | 精品久久久久久亚洲精品 | 人人舔人人插 | 亚洲av一级毛片特黄大片 | 一本色道久久99精品综合蜜臀 | 嗯~啊~弄嗯~啊h高潮视频 | 少妇一级淫片免费看 | 久久九九热re6这里有精品 | 国内免费视频成人精品 | 精品人成 | 香蕉久久久久久 |