一,首先创建一个表单页面

<body>
<form action="uploads" method="post" enctype="multipart/form-data">
文件: <input type="file" name="uploadObject"> <input
type="submit" value="提交">
</form>
</body>

  

二,创建一个接受文件的Action处理上传的文件

public class FileUpload extends ActionSupport {

	private static final long serialVersionUID = 1L;

	/* 上传的文件,属性的名字和form表单中的name保持一致 */
public File uploadObject;
/* 获取上传文件的名字,名字的命名格式为 file 的文件名(上面)+“fileName” */
public String uploadObjectFileName;
/* 文件的类型名称,名字的命名格式为 file的文件名(上上面)+“ContentType” */
public String uploadObjectContentType; public String execute() { System.out.println("fileName:" + uploadObjectFileName);
System.out.println("contentType:" + uploadObjectContentType);
System.out.println("File:" + uploadObject); // 获取要保存文件夹的物理路径(绝对路径)
String realPath = ServletActionContext.getServletContext().getRealPath(
"/upload");
File file = new File(realPath); // 测试此抽象路径名表示的文件或目录是否存在。若不存在,创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
if (!file.exists()) {
file.mkdirs();
} try {
// 保存文件
FileUtils.copyFile(uploadObject, new File(file,
uploadObjectFileName));
} catch (IOException e) {
e.printStackTrace();
}
return SUCCESS;
}
}

  

三,配置action

	<package name="upload" extends="struts-default">

    	 <action name="uploads" class="gy.upload.FileUpload">

            <!-- 指定(限制)上传文件的类型,定义局部拦截器,修改默认拦截器的属性
"fileUpload.maximumSize" :限制上传最大的文件大小。
"fileUpload.allowedTypes":允许上传文件的类型。
"fileUpload.allowedExtensions":允许上传文件的可扩展文件类型。 -->
<interceptor-ref name="defaultStack">
<param name="fileUpload.maximumSize">500000000</param>
<param name="fileUpload.allowedTypes">text/plain,application/vnd.ms-powerpoint</param>
<param name="fileUpload.allowedExtensions">.txt,.ppt</param>
</interceptor-ref> <result>/success.html</result>
<!-- 出现错误自动会返回input结果,进入结果视图 -->
<result name="input" >/fail.html</result>
</action> </package>

  

这样就搞定了。注释很重要

最新文章

  1. android 股票数据通过日K获取周K的数据 算法 源码
  2. MySQL Error Handling in Stored Procedures 2
  3. MySQL Server 5.7解压版缺少文件无法启动
  4. JDK安装(windows/linux)
  5. 事务回滚后,自增ID仍然增加
  6. Java去除掉HTML里面所有标签的两种方法——开源jar包和自己写正则表达式
  7. javaee学习-新建servlet 直接返回html
  8. MySQL引擎的相关知识
  9. Doxygen + Graphviz windows下安装配置(图解)
  10. vsftpd3.0之匿名用户配置
  11. 团队作业1--团队展示&amp;选题(SNS)
  12. NancyFX 第十一章 Bootstrapping
  13. java内存性能调优编码注意
  14. three.js 制作一个简单的圆柱体模型
  15. 关于string.Template的简单介绍
  16. ifconfig命令详情
  17. 深入理解JSON
  18. flume采集启动报错,权限不够
  19. CDN加速-内容分发网络
  20. MySQL多表查询回顾

热门文章

  1. BZOJ 4033 [HAOI2015]树上染色 ——树形DP
  2. 雅礼培训4.3 Problem A 【点分治】
  3. BZOJ4446 [Scoi2015]小凸玩密室 【树形Dp】
  4. 关于Boot应用中集成Spring Security你必须了解的那些事
  5. numpy数组之读写文件
  6. 分布式架构和微服务CI/CD的范本技术解读
  7. bzoj2555(lct维护sam)
  8. RabbitMQ 简介以及使用场景
  9. 解决树莓派8G的SD卡只能识别3.3G,SD卡扩容
  10. 使用SourceTree 来管理 Gitcafe 的Pages 发布Blog!