Struts2实现文件上传和下载,多文件上传,限制文件大小,限制文件类型
文件上传使用的包:commons-upload-xx.jar
commons-io-xx.jar
一.实现文件上传:
1.在表单空间中添加enctype=”multipart/form-data”
<form action="upload.action" method="post" enctype="multipart/form-data">
<input type="file" name="upload" />
<input type="submit" value="上传" />
</form>
2.创建Action:
①在action中添加属性
private File xnamex; //指定文件名,文件名必须与文件域的name属性名一样
private String xnamexUploadContentType; //文件类型
private String xnamexFileName; //文件名称
②重写execute或自定义方法:
获取远程站点真正路径,指定文件保存路径:
String savePath= ServletActionContext.getServletContext.get(“/upload”);
通过IO操作将文件写入保存文件夹
1: package com.action;2: import java.io.File;3: import org.apache.commons.io.IOUtils;4: import org.apache.struts2.ServletActionContext;5: import com.opensymphony.xwork2.ActionSupport;6:7: public class UploadAction extends ActionSupport {8: private File upload;//上传的文件9: private String uploadContentType;//文件类型10: private String uploadFileName;//文件名11:12: public File getUpload() {13: return upload;14: }15: public void setUpload(File upload) {16: this.upload = upload;17: }18: public String getUploadContentType() {19: return uploadContentType;20: }21: public void setUploadContentType(String uploadContentType) {22: this.uploadContentType = uploadContentType;23: }24: public String getUploadFileName() {25: return uploadFileName;26: }27: public void setUploadFileName(String uploadFileName) {28: this.uploadFileName = uploadFileName;29: }30: @Override31: public String execute() throws Exception {32: String savaPath = ServletActionContext.getServletContext()33: .getRealPath("/upload");34: FileOutputStream fos=null;35: FileInputStream fis=null;38: fis=new FileInputStream(upload[i]);39: fos=new FileOutputStream(savaPath+"\\"+uploadFileName[i]);44: IOUtils.copy(fis, fos);45: fis.close();46: fos.flush();47: fos.close();49: return "success";50: }52: }
3.在struts2.xml文件中配置:
<action name="upload" class="com.action.UploadAction"><result name="success">/uploadfile.jsp</result></action>
二.限制文件大小:
方法一:在struts2.xml文件中配置常量参数:
<constant name=”struts.multipart.maxSize” value=”50000” />
value值 为 byte
方法二:在action中引用系统定义的fileUpload拦截器,
配置拦截器参数:<param name=”maximumSize”>50000</param>
三.限制文件类型:
在action中引用系统定义的fileUpload拦截器,
配置拦截器参数:
<param name=”allowedTypes”>application/msword,·····</param>
tomcat中,在conf/web.xml中查找type

四.实现多个文件同时上传
①,将Action中属性改为数组:
private File[] xnamex; //指定文件名
private String[] xnamexUploadContentType; //文件类型
private String[] xnamexFileName; //文件名称
②,在方法中添加数组遍历
五.在struts.xml中配置中配置保存路径
①.在action标签中添加参数配置
<param name=”path”>upload</param> //指定文件夹名
②.修改文件上传Action:
添加属性:private String path; //与配置文件中参数的name属性一致
更改保存路径:savaPath=ServletActionContext.getActionContext.get(“/”+path);
实现文件下载 (点击)
============================================================
OVER
Struts2实现文件上传和下载,多文件上传,限制文件大小,限制文件类型的更多相关文章
- [CentOs7]搭建ftp服务器(3)——上传,下载,删除,重命名,新建文件夹
摘要 上篇文章介绍了如何为ftp添加虚拟用户,本篇将继续实践如何上传,下载文件. 上传 使用xftp客户端上传文件,如图所示 此时上传状态报错,查看详情 从错误看出是应为无法创建文件造成的.那么我们就 ...
- Eclipse 上传 删除 下载 分析 hdfs 上的文件
本篇讲解如何通过Eclipse 编写代码去操作分析hdfs 上的文件. 1.在eclipse 下新建Map/Reduce Project项目.如图: 项目建好后,会默认加载一系列相应的jar包. 下 ...
- drupal7 开发自定义上传、下载模块的上传功能
关键点有两个:1.在页面上显示出上传的控件,2.代码实现文件上传到服务器的功能 一.显示控件: 先来看关键点1: 实现页面显示出上传控件, 关键代码: $form['my_file_field'] = ...
- java web学习总结(二十四) -------------------Servlet文件上传和下载的实现
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- Nancy之文件上传与下载
零.前言 由于前段时间一直在找工作,找到工作后又比较忙,又加班又通宵的赶项目,所以博客有段时间没有更新了. 今天稍微空闲一点,碰巧前几天看到有园友问我Nancy中下载文件的问题,然后就趁着休息的时间写 ...
- (转载)JavaWeb学习总结(五十)——文件上传和下载
源地址:http://www.cnblogs.com/xdp-gacl/p/4200090.html 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传 ...
- SecureCRT使用sz和rz命令进行文件的上传和下载
SecureCRT可以使用sz和rz命令进行文件的上传和下载. sz文件下载: 格式:sz 文件名称 即可将服务器的文件下载至本地. rz文件上传: 格式:rz 文件名称 即可将本地文件上传至服务器. ...
- JavaWeb学习总结,文件上传和下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- JavaWeb学习总结(五十)——文件上传和下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- 19、文件上传与下载/JavaMail邮件开发
回顾: 一. 监听器 生命周期监听器 ServletRequestListener HttpSessionListener ServletContextListener 属性监听器 ServletRe ...
随机推荐
- npm package.json文件解读
每个Nodejs项目的根目录下面,一般都会有一个package.json文件.该文件可以由npm init生成,定义了项目所需要的各种模块,以及项目的配置信息(比如名称.版本.许可证等元数据). pa ...
- python 虚拟环境--virtualenv
virtualenv 是一个创建隔绝的Python环境的工具.virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包. 安装方式一: pip install v ...
- Debian9 配置之旅
注:在安装的过程中,要选择网络镜像,不然要出大问题...(我选择了网易163的源) 注:下面的操作发生在我apt-get update,更新出现了错误,做的处理. _Stretch_ - Offici ...
- html页面的音频问题
导火线 : 负责了项目中的话务间模块,处理音频出了一点问题 之前的处理 : //循环播放声音 var dialAudioDocument = document.createElement('audio ...
- 阿里云云虚拟主机安装Z-BlogPHP
简介 在阿里云买了一个云虚拟主机,叫共享虚拟主机普惠版,6 块钱一年.本着练习上手的目的,尝试在阿里云云虚拟主机上安装Z-BlogPHP,一个个人建站的CMS 系统. 云虚拟主机网页空间为200M,M ...
- python数据处理之基本函数
一.基本函数篇 1)python strip()函数介绍 函数原型 声明:s为字符串,rm为要删除的字符序列 s.strip(rm) 删除s字符串中开头.结尾处,位于 rm删除序列的字符 s.lstr ...
- LoadRunner 中实现MD5加密
最近在用loadrunner做一个压力测试,在编写脚本的时候发现传递参数的时候需要一个sign值,这个值是将参数进行MD5加密生成的,所以下面就说一说怎么对参数进行MD5加密. 1.首先我们需要一个加 ...
- 学习笔记 - 用js判断页面是否加载完成实现代码
用document.onreadystatechange的方法来监听状态改变, 然后用document.readyState == "complete"判断是否加载完成 docum ...
- 【批处理学习笔记】第十一课:常用DOS命令(1)
[ 文件夹管理 ]cd 显示当前目录名或改变当前目录.md 创建目录.rd 删除一个目录.dir 显示目录中的文件和子目录列表.tree 以图形显示驱动器或路径的文件夹结构.path 为可执行文件显示 ...
- COGS 144. [USACO Dec07] 魅力手镯【01背包复习】
144. [USACO Dec07] 魅力手镯 ★ 输入文件:charm.in 输出文件:charm.out 简单对比 时间限制:1 s 内存限制:8 MB 译 by CmYkRgB1 ...