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请求,写好上传的地址,然后写好文件路径 ...
随机推荐
- 14. pt-kill
pt-kill h=192.168.100.101,P=3306,u=admin,p=admin \--match-user "user01" \--match-host &quo ...
- [字符串][NOIP2012]Vigenère密码
Vigenère密码 题目描述 16世纪法国外交家Blaise de Vigenère设计了一种多表密码加密算法——Vigenère密码.Vigenère密码的加密解密算法简单易用,且破译难度比较高, ...
- AJAX html 传输json字符串&&巧妙运用eval()来解析返回的JSON字符串
1.AJAX html 传输json字符串: js方法如下: function saveRetYwlsh(){ var xmbh = document.getElementById("xmb ...
- 重写equals和hashCode的方法
为什么要有 hashCode引用 我们以"HashSet 如何检查重复"为例子来说明为什么要有 hashCode: 当你把对象加入 HashSet 时,HashSet 会先计算对象 ...
- base operand of '->' has non-pointer type 'const Comple
base operand of '->' has non-pointer type 'const Comple ->操作符前面的操作数类型不是指针类型 错误原因 函数(&对象) { ...
- navicat for mysql安装与破解
Windows系统的电脑 navicat for mysql 的安装软件以及破解包 方法/步骤 从网上下载需要用到的navicat for mysql 的安装软件以及破解包. 双击navi ...
- 【UWP】使用 Rx 改善 AutoSuggestBox
在 UWP 中,有一个控件叫 AutoSuggestBox,它的主要成分是一个 TextBox 和 ComboBox.使用它,我们可以做一些根据用户输入来显示相关建议输入的功能,例如百度首页搜索框那种 ...
- iOS逆向之iOSOpenDev
上篇谈到使用TheOS进行越狱开发,但是流程相对而言较复杂,本篇我们谈一下iOSOpenDev进行越狱开发.通过使用iOSOpenDev,我们可以使用Xcode进行开发.编译.生成并运行到设备上. 1 ...
- WPF 绘制曲线图
之前一直用GDI绘图,后面公司要求使用WPF,网上WPF资料太少(可能自己没找到吧),自己写了个测试用,可以拖动. 前端代码 <Window x:Class="Wpf绘图.Window ...
- 在源文件(.c)和头文件(.h)中声明和定义的区别——C语言
最近在看多文件编程的时候遇到的一个问题,本来以为理解了声明和定义的区别(然而并没有····),也算是重新认识了一次声明和定义,下面上代码 情形一:在源文件(.c)中 相信大部分读者对声明和定义的理解是 ...