① 必须封装三个字段:文件、文件类型、文件名,而且这三个字段的名字的前面几个字母是一样的

  如:

private File upload;
private String uploadContentType;
private String uploadFileName;

由File名upload,确定了文件类型这个字段的名字必须为uploadContentType,不能是upContentType,不能是upcontenttype

由File名upload,确定了文件名这个字段的名字必须为uploadFileName,不能是upFileName,不能是uploadfilename

如果你的File名是uploadFile那么确定了:uploadFileContentType, uploadFileFileName

<s:form action="up" enctype="multipart/form-data">
<s:file name="upload" label="选择文件"/><br/>
<s:submit value="上传"/>
</s:form>

注意form的enctype属性为multipart/form-data,file的name属性要和Action类中的file字段的名字一致

③ 可以配置savePath:

/*****方法一: Annotation******/
@Action(params={"savePath", "/uploadFiles"}) /****方法二: struts.xml********/
<action name="up" class="com.xxx.action.UpAction">
<!-- 动态设置Action的属性值 -->
<param name="savePath">/uploadFiles</param>
<!-- 配置Struts 2默认的视图页面 -->
<result>/WEB-INF/content/succ.jsp</result>
</action>

然后在Action中加入setSavePath(正常,略)和getSavePath():

public String getSavePath() {
return ServletActionContext.getServletContext().getRealPath(savePath);
}

④ 读取文件和写入文件(包括生成文件夹):

  

public String execute() throws Exception {
//生成文件夹
File filePath = new File(getSavePath());
if (!filePath.exists()) {
filePath.mkdirs();
System.out.println("mkdirs");
}
//以服务器的文件保存地址和原文件名建立上传文件输出流
FileOutputStream fos = new FileOutputStream(getSavePath()
+ "\\" + getUploadFileName());
FileInputStream fis = new FileInputStream(getUpload());
byte[] buffer = new byte[1024];
int len = 0;
while ((len = fis.read(buffer)) > 0) {
fos.write(buffer , 0 , len);
}
fos.close();
return SUCCESS;
}

注意实例化FileOutputStream时,构造参数的"\\",忘了这个文件名就和路径连接在一起了

struts2文件上传需要注意的的更多相关文章

  1. 【Java EE 学习 35 下】【struts2】【struts2文件上传】【struts2自定义拦截器】【struts2手动验证】

    一.struts2文件上传 1.上传文件的时候要求必须使得表单的enctype属性设置为multipart/form-data,把它的method属性设置为post 2.上传单个文件的时候需要在Act ...

  2. springMvc 使用ajax上传文件,返回获取的文件数据 附Struts2文件上传

    总结一下 springMvc使用ajax文件上传 首先说明一下,以下代码所解决的问题 :前端通过input file 标签获取文件,通过ajax与后端交互,后端获取文件,读取excel文件内容,返回e ...

  3. Struts2文件上传下载

    Struts2文件上传 Struts2提供 FileUpload拦截器,用于解析 multipart/form-data 编码格式请求,解析上传文件的内容,fileUpload拦截器 默认在defau ...

  4. Struts2文件上传和下载(原理)

    转自:http://zhou568xiao.iteye.com/blog/220732 1.    文件上传的原理:表单元素的enctype属性指定的是表单数据的编码方式,该属性有3个值:1)     ...

  5. struts2文件上传大小限制问题小结

    一:首先看一下程序执行中出现的对应报错信息,如下所示: [WARN ] 2015-03-03 15:31:11 :Unable to parse request org.apache.commons. ...

  6. Struts2 文件上传

    一:表单准备 ① 要想使用HTML 表单上传一个或多个文件     –须把 HTML表单的 enctype属性设置为multipart/form-data     –须把HTML 表单的method ...

  7. JAVA Web 之 struts2文件上传下载演示(二)(转)

    JAVA Web 之 struts2文件上传下载演示(二) 一.文件上传演示 详细查看本人的另一篇博客 http://titanseason.iteye.com/blog/1489397 二.文件下载 ...

  8. JAVA Web 之 struts2文件上传下载演示(一)(转)

    JAVA Web 之 struts2文件上传下载演示(一) 一.文件上传演示 1.需要的jar包 大多数的jar包都是struts里面的,大家把jar包直接复制到WebContent/WEB-INF/ ...

  9. (八)Struts2 文件上传和下载

    所有的学习我们必须先搭建好Struts2的环境(1.导入对应的jar包,2.web.xml,3.struts.xml) 第一节:Struts2 文件上传 Struts2 文件上传基于Struts2 拦 ...

  10. struts2文件上传,文件类型 allowedTypes

    struts2文件上传,文件类型 allowedTypes 1 '.a' : 'application/octet-stream', 2 '.ai' : 'application/postscript ...

随机推荐

  1. 如何新建一个空的optix工程

    参考链接 1.生成自定义里面添加cuda编译器 2. 修改这几个地方,设定cu文件需要的头文件.输出ptx文件的目录.生成ptx 这样就可以得到ptx了,注意ptx的路径即可 3.添加一些头文件.li ...

  2. pthread_cleanup_push vs Autorelease VS 异常处理

    黑幕背后的Autorelease http://www.cnblogs.com/feng9exe/p/7239552.html objc_autoreleasePoolPush的返回值正是这个哨兵对象 ...

  3. 大数相乘(牛客网ac通过)

    2019-05-172019-05-17 大数相乘基本思想: 相乘相加,只不过大于10先不进位到计算完后统一进位 #include <iostream> #include <stri ...

  4. 洛谷 P1967 货车运输 LCA + 最小生成树

    两点之间边权最大值的最小值一定在图的最小生成树中取到. 求出最小生成树,进行倍增即可. Code: #include<cstdio> #include<algorithm> u ...

  5. 全国所有省市县地理坐标Json格式

    https://www.cnblogs.com/yzbubble/p/7707129.html

  6. Java XSSF 导出excel 工具类

    参数解释: title:导出excel标题.headers 导出到excel显示的列头. columns 对应数据库字段 .list 导出数据1.pox中添加依赖 <dependency> ...

  7. Objective-C的陷阱与缺陷

    Objective-C是一个强大而且非常有用的语言,但是同样也是有一点危险的.这次主题是受到一篇有关C++陷阱的文章启发,来聊聊Objective-C和Cocoa中的陷阱. 简介 我将和Horstma ...

  8. shuoj1936-D序列—最长上升子序列

    Description 已知两个长度为N的数组A和B.下标从0标号至N-1. 如今定义一种D序列 (如果长度为L).这样的序列满足下列条件: 1. 0 <= D[i] <= N-1 2.  ...

  9. 使用IIS承载WCF服务

    作者:jiankunking 出处:http://blog.csdn.net/jiankunking 1.WCF能够方便的通过IIS承载,此承载模型与ASP.NET和ASP.NET Web Servi ...

  10. Linux多线程实践(六)使用Posix条件变量解决生产者消费者问题

    前面的一片文章我们已经讲过使用信号量解决生产者消费者问题.那么什么情况下我们须要引入条件变量呢? 这里借用  http://www.cnblogs.com/ngnetboy/p/3521547.htm ...