1.单文件上传

 1 jsp页面:
 2
 3 <!-- 单文件上传 -->
 4         <form action="Fileupload.action" method="post"
 5             enctype="multipart/form-data">
 6             username:
 7             <input type="text" name="username" />
 8             <br />
 9             file:
10             <input type="file" name="file" />
11             <br />
12             <input type="submit" name="提交" />
13         </form>
14 <!--注意:一定要写enctype="multipart/form-data"-->

 1 action页面:
 2
 3 package com.Struts2.action;
 4
 5 import java.io.File;
 6 import java.io.FileInputStream;
 7 import java.io.FileOutputStream;
 8 import java.io.InputStream;
 9 import java.io.OutputStream;
10
11 import org.apache.struts2.ServletActionContext;
12
13 import com.opensymphony.xwork2.ActionSupport;
14
15 public class Fileupload extends ActionSupport {
16
17     /**
18      *
19      */
20     private static final long serialVersionUID = 4038542394937191173L;
21
22     private String username;
23     private File file;
24     private String fileFileName;// 提交过来的file的名字,必须为FileName后缀
25     private String fileContentType;// 提交过来的file的MIME类型,必须以ContentType为后缀
26
27     public String getUsername() {
28         return username;
29     }
30
31     public void setUsername(String username) {
32         this.username = username;
33     }
34
35     public File getFile() {
36         return file;
37     }
38
39     public void setFile(File file) {
40         this.file = file;
41     }
42
43     public String getFileFileName() {
44         return fileFileName;
45     }
46
47     public void setFileFileName(String fileFileName) {
48         this.fileFileName = fileFileName;
49     }
50
51     public String getFileContentType() {
52         return fileContentType;
53     }
54
55     public void setFileContentType(String fileContentType) {
56         this.fileContentType = fileContentType;
57     }
58
59     @Override
60     public String execute() throws Exception {
61         String root = ServletActionContext.getServletContext().getRealPath(
62                 "/upload");
63         InputStream is = new FileInputStream(file);
64         OutputStream os = new FileOutputStream(new File(root, fileFileName));
65
66         System.out.println("fileFileName:" + fileFileName);
67         // 因为file是存放在临时文件夹的文件,我们可以将其文件名和文件路径打印出来,看和之前的fileFileName是否相同
68         System.out.println("file:" + file.getName());
69         System.out.println("file:" + file.getPath());
70
71         byte[] buffer = new byte[500];// 用缓冲
72         int length = 0;
73         while (-1 != (length = is.read(buffer, 0, buffer.length))) {
74             os.write(buffer);
75         }
76         os.close();
77         is.close();
78
79         return SUCCESS;
80     }
81 }

2.多文件上传

 1 jsp页面:
 2
 3 <script type="text/javascript">
 4             $(function() {
 5             $("#button").click(function (){
 6                 var html = $("<input type='file' name='file'/><br/>");
 7                 var button = $("<input type='button' name='button' value='删除'/><br/>");
 8                 $("#body div").append(html).append(button);
 9                     button.click(function (){
10                         html.remove();
11                         button.remove();
12                         });
13             });
14         });
15         </script>
16 <body id="body">
17 <!-- 多文件上传 -->
18         <form action="manyFileupload.action" method="post"
19             enctype="multipart/form-data">
20             username:
21             <input type="text" name="username" />
22             <br />
23             file:
24             <input type="file" name="file" />
25             <br />
26             <input type="button" value="添加" id="button" />
27             <br />
28             <div></div>
29             <input type="submit" value="提交" />
30         </form>
31     </body>

action页面:package com.Struts2.action;import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;/*** 多文件上传* * @author admin* */
public class ManyFileupload extends ActionSupport {/*** */private static final long serialVersionUID = -1060365794705605882L;private String username;private List<File> file;// 因为有多个文件,所以用list集合,file属性指上传到的临时空间文件夹(upload)中的绝对路径private List<String> fileFileName;// 上传的文件名称,自动会加载,因为是以FileName为后缀,会自动识别文件名称private List<String> fileContentType;// 上传过来的文件类型,以ContentType后缀,自动识别类型(如:图片类型就是image/jepg)public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public List<File> getFile() {return file;}public void setFile(List<File> file) {this.file = file;}public List<String> getFileFileName() {return fileFileName;}public void setFileFileName(List<String> fileFileName) {this.fileFileName = fileFileName;}public List<String> getFileContentType() {return fileContentType;}public void setFileContentType(List<String> fileContentType) {this.fileContentType = fileContentType;}@Overridepublic String execute() throws Exception {String root = ServletActionContext.getServletContext().getRealPath("/upload");for (int i = 0; i < file.size(); i++) {InputStream is = new FileInputStream(file.get(i));OutputStream os = new FileOutputStream(new File(root, fileFileName.get(i)));byte[] buffer = new byte[500];int length = 0;while (-1 != (length = is.read(buffer, 0, buffer.length))) {os.write(buffer);}os.close();is.close();}return super.execute();}}

3.文件下载

1 jsp页面
2
3         <!-- 下载 -->
4         <form action="fileDownload.action">
5             <input type="submit" value="下载" />
6         </form>
7     

action页面package com.Struts2.action;import java.io.InputStream;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;/*** 文件下载* * @author admin* */
public class FileDownload extends ActionSupport {/*** */private static final long serialVersionUID = 509550154000070698L;public InputStream getDownloadFile() {return ServletActionContext.getServletContext().getResourceAsStream("upload/psb.jpg");// 从upload中选择一张图片进行下载
    }@Overridepublic String execute() throws Exception {return super.execute();}
}

4.struts.xml

 1     <!-- 定义全局结果:必须写在action上面 -->
 2     <global-results>
 3         <result name="success">/success.jsp</result>
 4     </global-results>
 5
 6     <!-- 单文件上传 -->
 7     <action name="Fileupload" class="com.Struts2.action.Fileupload"></action>
 8     <!-- 多文件上传-->
 9     <action name="manyFileupload" class="com.Struts2.action.ManyFileupload"></action>
10     <!-- 文件下载 -->
11     <action name="fileDownload" class="com.Struts2.action.FileDownload">
12         <result name="success" type="stream">
13              <param name="contentDisposition">attachment;filename="psb.jpg"</param><!-- attachment表示弹出下载提示框 -->
14              <param name="inputName">downloadFile</param><!-- downloadFile对应action中的getDownloadFile方法 -->
15         </result>
16     </action>    

本博客源码出自:http://www.cnblogs.com/xiaoluo501395377/archive/2012/10/26/2740882.html。谢谢他的分享!

转载于:https://www.cnblogs.com/lirenzhujiu/p/5749303.html

Struts2中文件上传下载实例相关推荐

  1. ASP.NET中文件上传下载方法集合

    asp.net 2008-08-23 21:10:35 阅读0 评论0   字号:大中小 订阅 ASP.NET中文件上传下载方法集合 文件的上传下载是我们在实际项目开发过程中经常需要用到的技术,这里给 ...

  2. java文件上传过滤,struts2中文件上传过滤

    手动实现文件过滤 大部分时候,Web应用不允许浏览者自由上传,尤其不能允许上传可执行性文件--因为可能是病毒程序.通常,我们可以允许浏览者上传图片,上传压缩文件等:除此之外,还必须对浏览者上传的文件大 ...

  3. kingedit 上传php_php文件上传下载实例(实现最简单的网盘功能)

    本人是一个新手代码狗,第一次发表博客,欢迎大大们指点! 最近手头有一个文件上传下载的案例,跟大家一起分享一下作为一个新手的苦逼成长历程! 话不多说,先上代码: 一:这个是一个文件上传的html页面,小 ...

  4. Spring MVC文件上传下载实例

    工程目录: 导入jar: controllers.FileControler.java package controllers;import java.io.File; import java.io. ...

  5. 基于struts2的文件上传下载

    1.struts.xml 1 <struts> 2 <constant name="struts.multipart.maxSize" value="2 ...

  6. 【struts2】文件上传下载—struts2实现

    struts2实现上传下载时要用到的jar包: UploadAction.java(fileupload.action) package com.rczp.action;import java.io. ...

  7. Struts2 文件上传,下载,删除

    本文介绍了: 1.基于表单的文件上传 2.Struts 2 的文件下载 3.Struts2.文件上传 4.使用FileInputStream FileOutputStream文件流来上传 5.使用Fi ...

  8. Asp.net中文件上传下载的简单实现

    1. 文件下载 在asp.net中,如果想点击某aspx的url实现文件下载只要在其Page_Load函数实现目标url的重定向即可.用下列代码即可实现. Response.Redirect(&quo ...

  9. struts2中文件上传

    注意点 private File image;//对应的就是表单中文件上传的那个输入域的名称,Struts2框架会封装成File类型的private String imageFileName;// 上 ...

最新文章

  1. 发现check_nginx.sh 里的一个小bug~~~
  2. Linux进程模型总结
  3. ORACLE查询删除重复记录
  4. php有没有dao层,php框架开发四(DAO层)_PHP教程
  5. 动态规划解决分割问题
  6. AOP(execution表达式)
  7. SubSnoic 框架入门到提高(4)---全程记录
  8. Elasticsearch 备份数据到 AWS S3
  9. 关于DHCP的中继问题
  10. Java 实现奇数阶幻方的构造
  11. while在c语言中的作用,while的用法_C语言中while的用法
  12. openssl生成自签名证书流程
  13. 简述python语言的主要功能和特点_python语言的特点有哪些
  14. python生词本查单词译文_GitHub - To-knowledge/Wudao-dict: 有道词典的命令行版本,支持英汉互查和在线查询。...
  15. 必看!2021年云计算行业五大趋势,云南昆明企业小型云计算平台搭建及解决方案
  16. PCB应力应变测试-ICT、FCT治具应力把控标准
  17. 大熊猫源致病大肠杆菌CCHTP全基因组测序及耐药和毒力基因分析
  18. Linux | crontab定时任务及开机自启项
  19. 关于数据挖掘的something
  20. Kafka之ISR机制的理解

热门文章

  1. 全志A33-串口SLIP的使用
  2. 朋友在征信太烂没法办贷款,先买在我名下再过户是否行得通?
  3. 求职OMG——大学生就业指导与技能
  4. 分计算iv值_一文读懂评分卡的IV、KS、AUC、GINI指标
  5. css html 抽屉,CSS快速入门-前端布局1(抽屉)(示例代码)
  6. 前端将二进制数据流转为文件_前端通过二进制流下载文件
  7. 利用matlab实现SAR 图像线性拉伸显示
  8. Linux 释放cpugpu内存、显存和硬盘
  9. GitHub 新出的 Actions 是什么? 用他做自动测试?
  10. 1.3 Go语言基础之数据类型