Struts2之struts2文件上传详解
一、学习案例:通过在uploadfile.jsp页面填写完表单,提交后跳转到success.jsp页面,然后验证upload包下上传文件是否成功。
二、案例分析:struts2文件上传并不是表面上看的只需简单配置就可以上传文件。实际是分为两步的。1、struts2首先将客户端上传的文件保存到struts.multipart.saveDir键所指定的目录,如果该键所对应的目录不存在,就会保存到javax.servlet.context.tempdir环境变量所指定的目录中。2、Action中所定义的File类型的成员变量file实际上指向的是临时目录中的临时文件,然后服务器端通过IO的方式将临时文件写入到指定的服务器端目录中。
a)先在上传页面(uploadfile.jsp定义表单)
1、form标签中method方法为post,添加enctype=”multipart/form-data”
2、类型为file的input标签定义的name在action中会用到,我们定义为“file”
b)创建action(UploadFileAction.java)
1、上传文件我们首先需要三个成员变量:
private File file;
private String fileFileName;
private String fileContentType;
2、文件名称获取规定:文件名+FileName
3、文件类型获取规定:文件名+ContentType
4、通过IO操作文件上传。
c)配置struts.xml
d)创建成功页面(success.jsp)显示文件名称和类型。
e)struts2文件上传原理分析
1、项目上传完成后,我们通过查看控制台输出可以发现:
信息: Unable to find 'struts.multipart.saveDir' property setting. Defaulting to javax.servlet.context.tempdir
从上一章《Struts2之default.properties详解》中了解,配置struts.multipart.saveDir即可。
2、我们可以通过在程序中输出临时文件路径查看临时文件
3、文件上传成功后即删除,所以我们可以在程序中让线程睡眠查看临时文件。
f)大家如果想了解多文件上传,可以自行百度,很简单,在此不多解释。
三、经验之谈:
a)通过之前的《Struts2之Servlet文件上传详解》博文,我们再学习struts2的文件上传是不是就和容易理解。分析下来,其实struts2只不过是把底层进行封装,让我们使用起来更方便。
b)在上面的f中之所以不解释,是因为我们在项目中使用多文件上传,一般不自己实现,关于多文件上传我们一般都使用插件。在我的网站“爱尚合伙人”中,相册中图片上传就是使用的插件。
c)关于多文件上传插件,大家如果喜欢可以自行百度,实在搞不了,可以和我交流,帮大家实现。
四、参考项目:http://download.csdn.net/detail/u011638419/8218863
五、每日一乐:
话说我侄子遭遇车祸飞出去七米毫发无伤。
就是因为背后有大书包垫着。
他说这是他第一次感到读书有用。
知识改变命运啊!
最终解释权归爱尚合伙人(www.23hhr.com)所有,转载请注明出处。
Struts2之struts2文件上传详解相关推荐
- Struts2之Servlet文件上传详解
声明:此次讲解文件上传使用的FileUpload组件和IO组件,都是Apache官网最新版,FileUpload版本号:commons-fileupload-1.3.1-bin.zip,IO版本号:c ...
- Multipart/form-data POST文件上传详解
Multipart/form-data POST文件上传详解 理论 简单的HTTP POST 大家通过HTTP向服务器发送POST请求提交数据,都是通过form表单提交的,代码如下: <form ...
- php文件上传详解,PHP文件上传实例详解!!!
这篇文章主要介绍了PHP文件上传实例代码,需要的朋友可以参考下 首先来看下上传部分的表单代码: 文件: 这里有几个要注意的地方,首先看这句 ,这里我们采用POST方法,个别浏览器还支持PUT方法,当 ...
- JAVA文件上传详解(附源码)
文章目录 JAVA文件上传详解(附源码) 1.准备工作 2.使用类介绍 FileItem类 ServletFileUpload类 3.代码编写 JAVA文件上传详解(附源码) 在web应用中,文件上传 ...
- Retrofit2 multpart多文件上传详解
原文出处:http://www.chenkaihua.com/2016/04/02/retrofit2-upload-multipart-files.html Retrofit2是目前很流行的andr ...
- java web文件上传详解_java web图片上传和文件上传实例详解
java web图片上传和文件上传 图片上传和文件上传本质上是一样的,图片本身也是文件.文件上传就是将图片上传到服务器,方式虽然有很多,但底层的实现都是文件的读写操作. 注意事项 1.form表单一定 ...
- JavaScript 文件上传详解
本文为 Qunar 技术沙龙投稿,版权归原作者所有,未经允许,请勿转载. 原文地址:http://mp.weixin.qq.com/s/KWFyJa06CNXrU8zhSzzQFQ 作者:梁志,201 ...
- python爬虫:Multipart/form-data POST文件上传详解
简单的HTTP POST 大家通过HTTP向服务器发送POST请求提交数据,都是通过form表单提交的,代码如下: <form method="post"action=&qu ...
- elment-ui文件上传详解
文件上传总有各种问题,算是给自己一个总结吧 HTML <el-form-item prop="" class="form-item"><tem ...
最新文章
- 程序员的疯狂:打工与创业的残酷区别
- rabbitmq 持久化_SpringBootRabbitMQ消息处理持久化问题
- Java Se:自定义ClassLoader
- .NET获取根目录方法
- spring boot+mybatis整合
- java 随机数种子_Java--随机数和随机数种子(转)
- 防火墙配置十大任务之十,构建虚拟防火墙
- 剑指Offer - 面试题33. 二叉搜索树的后序遍历序列(递归)
- STM32H7---高速缓存Cache(一)
- trigger 根据绑定到匹配元素的给定的事件类型执行所有的处理程序和行为。
- 芯烨 XP-350b 打印机驱动
- 如何查看Websphere(was)上的jdk版本
- 随机森林-科比生涯数据集分析与预测
- vue插件颜色选择器
- 编程15年,如何才能成不了高手?
- 如何通过命令将可执行程序转入deamon(之start-stop-daemon )
- python解压7z压缩包_python使用7z解压软件备份文件脚本分享
- Fiddler-使用教程
- android开发中如何判断手机中存在的sim卡数量?
- 最美诗词可切换网站单页源码
热门文章
- 3D标签云/滚动词条
- Spring MVC 在JSP中获取 Service或Dao
- 阿尔茨海默病神经影像学计划的最新出版物:改进的AD临床试验的进展综述
- uniapp - animation动画数组无效
- 用AES加密密钥长度报错问题
- H.264编码四种画质级别
- 99Echarts - 地理坐标/地图(Hexagonal Binning)
- 认识计算机系统学情分析,认识计算机系统 教学设计
- html5版权信息怎么添加,复制文本加上版权信息功能实现
- 未处理 SecurityException,PublicKeyToken=b77a5c561934e089 类型的权限已失败