一、学习案例:通过在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文件上传详解相关推荐

  1. Struts2之Servlet文件上传详解

    声明:此次讲解文件上传使用的FileUpload组件和IO组件,都是Apache官网最新版,FileUpload版本号:commons-fileupload-1.3.1-bin.zip,IO版本号:c ...

  2. Multipart/form-data POST文件上传详解

    Multipart/form-data POST文件上传详解 理论 简单的HTTP POST 大家通过HTTP向服务器发送POST请求提交数据,都是通过form表单提交的,代码如下: <form ...

  3. php文件上传详解,PHP文件上传实例详解!!!

    这篇文章主要介绍了PHP文件上传实例代码,需要的朋友可以参考下 首先来看下上传部分的表单代码: 文件:  这里有几个要注意的地方,首先看这句 ,这里我们采用POST方法,个别浏览器还支持PUT方法,当 ...

  4. JAVA文件上传详解(附源码)

    文章目录 JAVA文件上传详解(附源码) 1.准备工作 2.使用类介绍 FileItem类 ServletFileUpload类 3.代码编写 JAVA文件上传详解(附源码) 在web应用中,文件上传 ...

  5. Retrofit2 multpart多文件上传详解

    原文出处:http://www.chenkaihua.com/2016/04/02/retrofit2-upload-multipart-files.html Retrofit2是目前很流行的andr ...

  6. java web文件上传详解_java web图片上传和文件上传实例详解

    java web图片上传和文件上传 图片上传和文件上传本质上是一样的,图片本身也是文件.文件上传就是将图片上传到服务器,方式虽然有很多,但底层的实现都是文件的读写操作. 注意事项 1.form表单一定 ...

  7. JavaScript 文件上传详解

    本文为 Qunar 技术沙龙投稿,版权归原作者所有,未经允许,请勿转载. 原文地址:http://mp.weixin.qq.com/s/KWFyJa06CNXrU8zhSzzQFQ 作者:梁志,201 ...

  8. python爬虫:Multipart/form-data POST文件上传详解

    简单的HTTP POST 大家通过HTTP向服务器发送POST请求提交数据,都是通过form表单提交的,代码如下: <form method="post"action=&qu ...

  9. elment-ui文件上传详解

    文件上传总有各种问题,算是给自己一个总结吧 HTML <el-form-item prop="" class="form-item"><tem ...

最新文章

  1. 程序员的疯狂:打工与创业的残酷区别
  2. rabbitmq 持久化_SpringBootRabbitMQ消息处理持久化问题
  3. Java Se:自定义ClassLoader
  4. .NET获取根目录方法
  5. spring boot+mybatis整合
  6. java 随机数种子_Java--随机数和随机数种子(转)
  7. 防火墙配置十大任务之十,构建虚拟防火墙
  8. 剑指Offer - 面试题33. 二叉搜索树的后序遍历序列(递归)
  9. STM32H7---高速缓存Cache(一)
  10. trigger 根据绑定到匹配元素的给定的事件类型执行所有的处理程序和行为。
  11. 芯烨 XP-350b 打印机驱动
  12. 如何查看Websphere(was)上的jdk版本
  13. 随机森林-科比生涯数据集分析与预测
  14. vue插件颜色选择器
  15. 编程15年,如何才能成不了高手?
  16. 如何通过命令将可执行程序转入deamon(之start-stop-daemon )
  17. python解压7z压缩包_python使用7z解压软件备份文件脚本分享
  18. Fiddler-使用教程
  19. android开发中如何判断手机中存在的sim卡数量?
  20. 最美诗词可切换网站单页源码

热门文章

  1. 3D标签云/滚动词条
  2. Spring MVC 在JSP中获取 Service或Dao
  3. 阿尔茨海默病神经影像学计划的最新出版物:改进的AD临床试验的进展综述
  4. uniapp - animation动画数组无效
  5. 用AES加密密钥长度报错问题
  6. H.264编码四种画质级别
  7. 99Echarts - 地理坐标/地图(Hexagonal Binning)
  8. 认识计算机系统学情分析,认识计算机系统 教学设计
  9. html5版权信息怎么添加,复制文本加上版权信息功能实现
  10. 未处理 SecurityException,PublicKeyToken=b77a5c561934e089 类型的权限已失败