(25) java web的struts2框架的使用-基于表单的文件上传
2024-09-01 14:49:32
一,首先创建一个表单页面
<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>
这样就搞定了。注释很重要
最新文章
- android 股票数据通过日K获取周K的数据 算法 源码
- MySQL Error Handling in Stored Procedures 2
- MySQL Server 5.7解压版缺少文件无法启动
- JDK安装(windows/linux)
- 事务回滚后,自增ID仍然增加
- Java去除掉HTML里面所有标签的两种方法——开源jar包和自己写正则表达式
- javaee学习-新建servlet 直接返回html
- MySQL引擎的相关知识
- Doxygen + Graphviz windows下安装配置(图解)
- vsftpd3.0之匿名用户配置
- 团队作业1--团队展示&;选题(SNS)
- NancyFX 第十一章 Bootstrapping
- java内存性能调优编码注意
- three.js 制作一个简单的圆柱体模型
- 关于string.Template的简单介绍
- ifconfig命令详情
- 深入理解JSON
- flume采集启动报错,权限不够
- CDN加速-内容分发网络
- MySQL多表查询回顾
热门文章
- BZOJ 4033 [HAOI2015]树上染色 ——树形DP
- 雅礼培训4.3 Problem A 【点分治】
- BZOJ4446 [Scoi2015]小凸玩密室 【树形Dp】
- 关于Boot应用中集成Spring Security你必须了解的那些事
- numpy数组之读写文件
- 分布式架构和微服务CI/CD的范本技术解读
- bzoj2555(lct维护sam)
- RabbitMQ 简介以及使用场景
- 解决树莓派8G的SD卡只能识别3.3G,SD卡扩容
- 使用SourceTree 来管理 Gitcafe 的Pages 发布Blog!