文档章节

struts实现文件的上传

风中帆
 风中帆
发布于 2014/06/19 16:09
字数 487
阅读 168
收藏 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
博文 193
码字总数 17363
作品 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
Struts2知识点小结(一)

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

it~沃克尔
08/08
0
0
Stripes tips(1)-Stripes简介

初识 Stripes 和我们熟悉 Struts 1 和 Struts 2 类似,Stripes 同样是一种展示层框架,用于快速构建web程序。在使用Struts 1,WebWork 和 Struts 2 等框架的时候,通常需要大量额外的 XML 配...

晨曦之光
2012/03/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

java并发备忘

不安全的“先检查后执行”,代码形式如下: if(条件满足){ //这里容易出现线程安全问题//doSomething}else{//doOther} 读取-修改-写入 原子操作:使用CAS技术,即首先从V中读取...

Funcy1122
今天
0
0
SpringBoot2.0 停机

最近新建了个SpringBoot2.0的项目,因为原来一直使用的是传统的Tomcat部署war包的形式,所以这次SpringBoot内置Tomcat部署jar包的时候遇到了很多问题。其中一个就是因为没有外置的Tomcat容器...

Canaan_
昨天
0
1
Confluence 6 外部参考

一个外部参考的意思是任何站点链接到你 Confluence 的实例。任何时候当 Confluence 的用户单击这个外部链接的时候,Confluence 可以记录这次单击为参考。 在默认的情况下,外部链接的参考链接...

honeymose
昨天
0
0
Android中的设计模式之抽象工厂模式

参考 《设计模式解析》 第十一章 Abstract Factory模式 《设计模式:可复用面向对象软件的基础 》3.1 Abstract Factory 抽象工厂 对象创建型模式 《Android源码设计模式解析与实战》第6章 创...

newtrek
昨天
0
0
Redis | 地理空间(GEO)的一个坑

Redis的地理空间(Geo)是个好东西,轻轻松松的就可以把地图描点的问题处理了, 最近却遇到一个坑...Redis采用的Msater-Slave模式, 运用GEORADIUS在salve读取对应的数据,新增了从节点但是从不返...

云迹
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部