Struts2学习(六)———— 文件上传和下载
一、单文件上传
在没学struts2之前,我们要写文件上传,非常麻烦,需要手动一步步去获取表单中的各种属性,然后在进行相应的处理,而在struts2中就不需要了,因为有一个fileUpload拦截器帮我们全做完了。我们只需要添加一点点信息,就可以完成上传的功能。
1、Action中需要提供三个属性
File fieldName; //文件表单项名称,也就是上传控件所填写的name属性名
String fileContentType; //file就使用的文件表单项名和固定ContentType,代表获取上传文件的类型
String fileFileName; //file同样是fieldName+FileName(固定),代表上传文件的文件名
比如有<input type=”file” name=”myUpload”/> 表单项名称为: myUpload, 那么在action中的三个属性分别为
myUpload myUploadContentType myUploadFileName
2、在struts.xml中设置上传的一些配置信息,
设置常量(可选)
struts.multipart.parser:指定使用的上传组件,默认值为jakarta,表示使用commons-fileupload组件,Struts2还支持cos和pell
struts.multipart.saveDir:临时目录,默认为Tomcat中的work目录
struts.multipart.maxSize:整个请求大小限制,默认值为2097152b(1b等于8bit,1kb=1024byte,1M=1024kb), 也就是2M,这个是限制整个请求的大小,而不是单一文件的大小
fileUploadl拦截器三个参数(action中以param来设置值,可选)
maximumSize:上传的单个文件的大小限制 默认2M
allowedTypes:允许上传文件的类型,多个类型以逗号隔开 如果不指定,默认允许任何类型的文件上传
allowedExtensions:允许上传文件的扩展名,多个扩展名以逗号隔开 如果不指定,默认允许任何类型的文件上传
3、jsp页面中form表单的enctype需要指定为 enctype="multipart/form-data"
4、前面3步完成后,只需要在action中创建保存上传文件的位置,然后将其放入进去即可,fileUpload拦截器已经帮我们将各种参数获取到了。
JSP
struts.xml
action
上传的文件会放置在tomcat中该项目的WEB-INF的pictrue文件夹下。
二、多文件上传
会有两种解决方案
第一种,比较煞笔的,多写几个上传框,类似这样
jsp 注意name要同名
action
这样就可以选择多个文件同时上传了,但是我是从来没见过这种多文件上传的,哈哈,所以用第二种方式,只有一个上传框,能同时选取多个文件一起上传,
第二种:使用 uploadify 插件
三、文件下载。
在讲解strust.xml中的action的resultType时就讲过一个stream的结果类型,该类型就是用来下载的。
strust.xml
action
需要编写getPic(),和getFileName()这两个方法,一个是获取输入流,一个是获取中文名。其他的该怎么写就怎么写。
Struts2学习(六)———— 文件上传和下载的更多相关文章
- Struts2学习总结——文件上传与下载
Struts2文件上传与下载 1.1.1新建一个Maven项目(demo02) 在此添加Web构面以及 struts2 构面 1.2.1配置Maven依赖(pom.xml 文件) <?xml v ...
- Struts2 之 实现文件上传和下载
Struts2 之 实现文件上传和下载 必须要引入的jar commons-fileupload-1.3.1.jar commons-io-2.2.jar 01.文件上传需要分别在struts.xm ...
- JavaWeb学习总结——文件上传和下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- javaWeb学习总结——文件上传、下载
目录 1.文件上传环境搭建 2.文件上传代码实现 3.关于下载 @ 嘿,熊dei,你不得不知道在Web开发中,文件上传和下载功能是非常常用的功能,关于文件上传,浏览器上传[文件以流的形式传输]--&g ...
- struts2(六) 文件上传和下载
前面对文件下载提过一点点,这里正好要讲文件上传,就放在一起在说一遍. --WH 一.单文件上传 在没学struts2之前,我们要写文件上传,非常麻烦,需要手动一步步去获取表单中的各种属性,然后在进行相 ...
- struts2中的文件上传和下载
天下大事,必做于细.天下难事,必作于易. 以前见过某些人,基础的知识还不扎实就去学习更难的事,这样必定在学习新的知识会非常迷惑结果 再回来又一次学习一下没有搞懂的知识,这必定会导致学习效率的下降!我写 ...
- 4.struts2中的文件上传,下载
Struts2中文件的上传下载,是借用commons里面的包实现文件的上传,需要导入两个jar commons-fileupload-1.2.2.jar commons-io-2.0.1.jar 实现 ...
- 16.Django学习之文件上传和下载
上传就这么六步! 一. settings配置文件中配置 MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'medias').repl ...
- 1.6(Spring MVC学习笔记)文件上传与下载
一.文件上传 实现文件上传多数是采用表单提交数据, 但对于进行文件上传的表单需要满足一下几个条件 1.表单的method设置为post 2.表单的enctype设置为multipart/form-da ...
- Jmeter(六)文件上传和下载文件
一.Jmeter上传文件 编写脚本: 首先添加一个线程组,然后在线程组里面添加一个http请求,因为是发送数据,所有是post请求,写好上传的地址,然后写好文件路径 ...
随机推荐
- db2实现递归调用 机构等树形数据结构形成
WITH n(lev,ID, NAME, PORGID, ORG_ID_TREE) AS (SELECT 0,ID, NAME, PORGID, CAST(ID AS VARCHAR(1024)) F ...
- 数据库mysql之慢查询优化
今天项目遇到一个问题:就是在公司test环境中执行sql查询语句很快,也就几百毫秒,但是放到sit环境中测试就要延迟至少1分钟左右. 网上找了很多原因,大多数都是说索引问题,我看了索引没问题,又重新建 ...
- c++模板笔记
使用vc2015进行C++ 模板的学习实验和笔记 用简单示例学习了解STL template大部头理论书 讲解各种规则和各种规则例外的解决办法 集中精力在20%的规则中的阴暗角落而不是80%实践中要注 ...
- Subarray Sums Divisible by K LT974
Given an array A of integers, return the number of (contiguous, non-empty) subarrays that have a sum ...
- Android工具
2018-09-27 安卓签名工具 AndroidKiller 比如包打好了,想替换一个图片,就用zip打开,替换图片,重新签名.
- Python3实战系列之八(获取印度售后数据项目)
问题:续接上一篇.说干咱就干呀,勤勤恳恳写程序呀! 目标:此篇开始进入正题了.为实现我们整个项目功能而开始实现各个子模块功能.首先实现第一篇列出的分步功能模块的第五步: 5.python连接SQL S ...
- [C#]GetFloat提示"指定的转换无效"
数据库中没有double型,float就表示double值.sql server数据库字段类型与.net的数据类型的对应关系: real(数据库)<--> float(.NET)float ...
- Android单片机与蓝牙模块通信实例代码
Android单片机与蓝牙模块通信实例代码 参考路径:http://www.jb51.net/article/83349.htm 啦啦毕业了,毕业前要写毕业设计,需要写一个简单的蓝牙APP进行交互,通 ...
- drf4 视图与路由组件
APIView和View的区别 不管是View还是APIView最开始调用的都是as_view() APIView继承了View, 并且执行了View中的as_view()方法,最后把view返回了, ...
- 125 open source Big Data architecture papers for data professionals
https://www.linkedin.com/pulse/100-open-source-big-data-architecture-papers-anil-madan