struts2的文件上传和下载
来源:互联网 发布:手机实用软件大全 编辑:程序博客网 时间:2024/06/03 03:21
1. 文件上传、下载
1.1.文件上传
1.1.1 必须上传的jar包
1.1.2 建立上传页面
<center>
<h1>文件上传</h1>
<formaction="upload.action"method="post"enctype="multipart/form-data">
上传人:<inputtype="text"name="fileUserName"/><br>
上传文件:<inputtype="file"name="file"/><br>
<inputtype="submit"value="上传文件"/>
</form>
</center>
1.1.3 upload.action:
public class UploadAction extends ActionSupport {
// 接收前台传过来的值,定义上传人的变量
private String fileUserName;
// 定义上传文件的变量 struts2自动完成将file类型封装成File类。
private File file;
// 定义一个变量来接收文件名称
private String fileFileName;
// 定义一个变量来接收文件的类型。
private String fileContentType;
// 定义一个变量来接收保存路径
private String address;
public void upload() throws IOException {
System.out.println("上传人" +fileUserName);
// 正常上传:给文件起个名称:知道上传地址:实现上传就可以。
// struts2 提供一个拦截器fileUpload。在该拦截器中有inputName:该变量的值应该是File对象属性名。
System.out.println("文件名称" +fileFileName);
System.out.println("文件类型" +fileContentType);
// 根据文件名来截取后缀名 substring:包括前,不包括后。
String type = fileFileName.substring(fileFileName.lastIndexOf("."));
// 定义上传的文件名称 UUID--不能重复。 fileName + type;
String fileName = UUID.randomUUID().toString();
// 如果保存地址需要变动怎么办?可以将具体保存的位置用一个变量来代替 address;如何赋值?
// 程序运行过程是。点击上传的时候,应该去读取struts.xml;
// FileUtils工具类属于Apache.
// copyFile:实现文件上传:srcFile:要上传的源文件,destFile:表示上传到哪个目录下,上传的名称是什么。
FileUtils.copyFile(file, new File(address +fileName + type));
System.out.println("上传文件完成");
}
}
1.1.4struts.xml
<struts>
<packagename="default"namespace="/"extends="struts-default">
<!-- struts2:其他文件上传设置:可以设置上传文件的总大小。隐含说明struts2可以支持批量上传! -->
<actionname="upload"class="com.bjsxt.Action.UploadAction"method="upload">
<!-- 给变量赋值 -->
<paramname="address">E:/temp/</param>
<!-- struts2默认拦截器defaultStack 文件上传:比如说需要限制文件大小,或者限制文件后缀名 -->
<interceptor-refname="defaultStack">
<!-- 限制上传文件大小 MIME-->
<paramname="fileUpload.maximumSize">1000000</param>
<!-- 限制文件类型 :用途最多是上传图片jpg,png,gif.. -->
<paramname="fileUpload.allowedExtensions">.doc,.docx</param>
</interceptor-ref>
</action>
</package>
</struts>
1.2.文件下载
1.2.1 创建下载界面
<body>
<center>
<a href="download.action?fileName=hello.txt">文件下载</a>
</center>
</body>
1.2.2 创建Action
public class DownLoadAction extends ActionSupport{
// 定义一个变量来获取文件名称
private String fileName;
// 定义一个FileInputStream对象
private InputStream inputStream;
// 定义一个下载路径
private String address;
public String download() throws FileNotFoundException{
System.out.println("文件名称"+fileName);
// 利用io流方式进行下载
inputStream = new FileInputStream(new File(address+fileName));
return SUCCESS;
}
}
1.2.3 struts.xml
<actionname="download"class="com.bjsxt.Action.DownLoadAction"method="download">
<paramname="address">E:/temp/</param>
<!-- 文件下载需要使用type=stream
inline: 下载方式浏览器能够解析的情况下,就解析。不能解析再下载!
attachment: 无论浏览器是否能解析,都下载!
-->
<resulttype="stream">
<paramname="contentDisposition">attachment;fileName=${fileName}</param>
</result>
</action>
- Struts2文件的上传和下载
- Struts2文件的上传和下载
- struts2文件的上传和下载功能
- Struts2文件的上传和下载
- [转]Struts2文件的上传和下载
- Struts2文件的上传和下载
- Struts2文件的上传和下载
- struts2文件的上传和下载
- struts2的文件上传和下载
- struts2的文件上传和下载
- struts2的文件上传和下载
- Struts2文件的上传和下载
- Struts2文件的上传和下载
- Struts2文件的上传和下载
- struts2 实现文件的上传 和 下载
- Struts2的文件上传和下载
- Struts2实现文件的上传和下载
- struts2文件的上传和下载
- java.lang.RuntomeException: lib/arm64-v8a/路径下没有libinet.2.0.1.so
- openstack 通过service 查看每个service的存放log的位置
- QT5文件
- SQL 注入防御方法总结
- Linux的直接I/O机制
- struts2的文件上传和下载
- 一名交互设计师必备的知识架构
- 32位系统和64位系统上数据类型的长度
- Data Vault Brief Summary
- 微模块数据中心这么火,你知道多少?
- react+echart 体验基本图标展示
- 《HTTP小书》读书笔记(3)请求之请求方法(关键词:计算机网络/HTTP/请求方法/GET/POST/OPTIONS/PUT/DELETE/CONNECT)
- 如何在Macbook上安装MySQL
- 关于置信区间、置信度的理解