文档章节

struts实现文件的上传

风中帆
 风中帆
发布于 2014/06/19 16:09
字数 487
阅读 170
收藏 6

struts实现文件的上传,有三个部分:JSP页面,Action,struts.xml

1.JSP页面

 <s:file name="image" label="请选择文件"></s:file>
 <s:submit value="上传"></s:submit>

 2.Action中

 //用于保存页面file控件上传的数据
 private File image;
 //保存上传文件的名称
 //格式必须是:页面file控件的名称再加上FileName的格式
 private String imageFileName;
 //保存上传文件的类型,如image、doc、zip等
 //格式必须是:页面file控件的名称再加上FileContent的格式
 private String imageContentType;
public String execute() throws Exception {
  //获取文件上传后在服务器保存的位置
  //注意要在Webcontent下创建
  //images文件夹用于保存文件
  String path=
   ServletActionContext.getServletContext()
   .getRealPath("/images");
  //按照原文件名在images文件夹下构建文件
  File file=
   new File(path+"//"+imageFileName);
  //利用commons-io包中的FileUtiles类实现文件上传
  FileUtils.copyFile(image, file);
  return SUCCESS;
 }

3.struts配置

 <struts>
 <!-- 设置上传文件的临时目录 -->
 <constant name="struts.multipart.saveDir" value="e:\\temp"></constant>
 <!-- 设置上传文件的大小 -->
 <constant name="struts.multipart.maxSize" value="2097152"></constant>
 <package name="file" extends="struts-default" namespace="/">
  <action name="fileAction" class="com.action.FileAction">
   <result name="success">/success.jsp</result>
  </action>
 </package>
</struts>

 

分析:
文件上传过程:在页面点击上传之后,会在临时目录上会生成临时文件(临时文件的路径在struts的配置文件中constant的struts.multipart.saveDir中设置,如果没有设置,就是默认的Javax.servlet.context.tempDir;)
在Action中接收的image文件就是这个临时文件。
在Action的execute方法中,路径path是文件上传到服务器上之后,该文件在服务器上的路径,
这里是通过ServletActionContext.getServletContext().getRealPath("/images")获取images文件夹在服务器上的绝对路径,
因为要把上传的文件放在images文件夹下,所以path+fileName,就是文件的绝对路径了;
然后使用new File(path+fileName)创建文件;
FileUtils.copyFile(image,file);把本地的临时文件上传到了服务器上。

 

© 著作权归作者所有

共有 人打赏支持
风中帆
粉丝 14
博文 197
码字总数 17695
作品 0
青岛
ST2-045 For POC

转载请注明: 转载自Legend‘s BLog 本文链接地址: ST2-045 For POC 利用方法: 漏洞说明: Apache Struts 2被曝存在远程命令执行漏洞,漏洞编号S2-045,CVE编号CVE-2017-5638,在使用基于J...

apachecn_飞龙
2017/03/18
0
0
在Struts 2中实现文件上传

前一阵子有些朋友在电子邮件中问关于Struts 2实现文件上传的问题, 所以今天我们就来讨论一下这个问题。 实现原理 Struts 2是通过Commons FileUpload文件上传。Commons FileUpload通过将HTT...

哈全文
2012/06/22
0
0
文件上传下载——通过struts的FormFile上传单个excel文件

通过struts的FormFile上传单个excel文件 思路: 1、通过struts的FormFile获取File(这个文件的路径是“客户端的选择的路径地址”) 2、将客户端的文件,以流的形式,存放到服务器端指定的目录...

叶孤魂
2012/05/25
0
0
day37_Spring学习笔记_05_CRM_01

一、CRM 客户关系管理系统 CRM : custom releation manager 客户关系管理系统,用于维护客户和公司之间关系。 我们要做的是:学校 和 大家 之间关系。 完成功能: 员工管理: 1、登录(登录拦...

黑泽明军
08/15
0
0
Struts2知识点小结(一)

一、struts2简介   1、Struts2是一个基于MVC设计模式的Web应用框架 只要是web层框架 一般就会遵守MVC设计模式 2、struts2与struts1的关系? 没关系 WebWork基于xwork 3、struts2是一个可插拔...

it~沃克尔
08/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

请在移动端使用 先选择画笔

先选择画笔 请在移动端使用 https://lxz096.github.io/Canvas-/画板.html

壹峰
3分钟前
0
0
getSupportFragmentManager().beginTransaction().add报错cannot resolve method 'add'

getSupportFragmentManager().beginTransaction().add报错cannot resolve method 'add' 是导包的问题,所有包要保持一致,有app下的包,要保证都为app下的包 v4的包要保证都为v4的包...

lanyu96
17分钟前
0
0
linux 安装redis

Redis的安装 http://redis.io/download 官方安装例子 $ wget http://download.redis.io/releases/redis-4.0.11.tar.gz $ tar xzf redis-4.0.11.tar.gz $ cd redis-4.0.11 $ make //启动 $ sr......

苏牧影子
18分钟前
1
0
图(graph)

图(graph) 图是非线性数据结构,是一种较线性结构和树结构更为复杂的数据结构,在图结构中数据元素之间的关系可以是任意的,图中任意两个数据元素之间都可能相关。 1、概念 1.定义 图(g...

星汉
23分钟前
0
0
好用的vue组件

http://elickzhao.github.io/2017/08/vue%E4%B8%80%E4%BA%9B%E7%89%B9%E5%88%AB%E6%9C%89%E7%94%A8%E7%9A%84%E6%8F%92%E4%BB%B6/...

Littlebox
39分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部