4.struts2中的文件上传,下载
Struts2中文件的上传下载,是借用commons里面的包实现文件的上传,需要导入两个jar
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
实现的时候你可以使用s标签,也可以使用普通的表单标签步骤大概如下:
使用s标签的话,先导入标签
修改form 表单的enctype属性
编写action(利用IO流进行上传文件)
1.使用s标签的话,先导入标签
<%@ taglib prefix="s" uri="/struts-tags" %>
2.修改enctype属性
<body>
<s:form action="file2" method="post" enctype="multipart/form-data">
<s:file name="photo"></s:file></br>
<s:submit value="提交"></s:submit>
</s:form>
</body>
3.编写action(利用IO流进行上传文件)
属性:
private File photo;//文件位置
private String photoFileName;// 文件名
private String photoContentType;// 文件类型
上传方法:
public String execute() throws IOException {
// 传到哪里(文件长传后的路径)
ServletContext servletContext = ServletActionContext
.getServletContext();
String path = servletContext.getRealPath("/img/" + photoFileName);
System.out.println("文件路径:" + path);
// 去读取原文件的位置
FileInputStream in = new FileInputStream(photo);
// 写入你定义的文件上传的路径
FileOutputStream out = new FileOutputStream(path);
// 写的过程
byte[] buffer = new byte[1024];
int leng = 0;
// 就是已经读取文件完成
while ((leng = in.read(buffer)) != -1) {
out.write(buffer, 0, leng);
}
in.close();
out.close();
return "success";
}
文件下载直接贴代码:
在配置文件中的type属性使用stream作为type的结果类型
下载需要设置的参数:
contentType:
Contentlength:
inputName:指定getter定义的那个属性的名字,默认是inputStream
BufferSize:缓存大小
allowCache:是否允许缓存
contentCharSet:指定下载的字符集,在配置文件中配置一个type为stream的action
struts2配置文件
<!--下载的配置 -->
<action name="filedownload" class="com.etc.action.FileDownLoadAction" method="filedownload">
<result type="stream">
<param name="bufferSize">2048</param>
</result>
</action>
下载的代码(get,set方法记得生成)
private String contentType;
private String contentDisposition;
private InputStream inputStream;
private long contentLength;
public String filedownload() throws IOException{
contentType="text/html";//指定文件的类型
contentDisposition="attachment;filename=index.html";//下载的提示框
ServletContext servletContext=ServletActionContext.getServletContext();
//告诉文件在哪里
String filename=servletContext.getRealPath("/img/index.html");
//去读文件
inputStream=new FileInputStream(filename);
contentLength=inputStream.available();
return "success";
}
4.struts2中的文件上传,下载的更多相关文章
- java中的文件上传下载
java中文件上传下载原理 学习内容 文件上传下载原理 底层代码实现文件上传下载 SmartUpload组件 Struts2实现文件上传下载 富文本编辑器文件上传下载 扩展及延伸 学习本门课程需要掌握 ...
- struts2中的文件上传,文件下载
文件上传: Servlet中的文件上传回顾 前台页面 1.提交方式post 2.表单类型 multipart/form-data 3.input type=file 表单输入项 后台 apache提交 ...
- javaWeb中的文件上传下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- struts2中的文件上传和下载
天下大事,必做于细.天下难事,必作于易. 以前见过某些人,基础的知识还不扎实就去学习更难的事,这样必定在学习新的知识会非常迷惑结果 再回来又一次学习一下没有搞懂的知识,这必定会导致学习效率的下降!我写 ...
- Java中实现文件上传下载的三种解决方案
第一点:Java代码实现文件上传 FormFile file=manform.getFile(); String newfileName = null; String newpathname=null ...
- struts2中的文件上传和文件下载
单文件文件上传 1.
- Struts2中实现文件上传的功能
1.首先得配置一下Struts得配置文件struts-xml: <?xml version="1.0" encoding="UTF-8" ?> &l ...
- javaweb项目中的文件上传下载功能的实现
框架是基于spring+myBatis的. 前台页面的部分代码: <form action="${ctx}/file/upLoadFile.do"method="p ...
- Linux中的文件上传下载
1.部署ftp服务器 2.安装bypy python 客户端(还没试过,先记录一下) https://www.v2ex.com/t/124886
随机推荐
- OAF_开发系列16_实现OAF与XML Publisher整合
http://wenku.baidu.com/link?url=y2SFKHP5qqn4bl_iNeqLGjXsTvhyFuhkMraIbWZdTXbzcv0vTefrZFFBDWie0cAAKuTw ...
- 有关TabBar的一些性质
// 计入导航控制器时,要使得底部的TabBar消消失 test.hidesBottomBarWhenPushed = YES; /** * 布局子控件 */ - (void)layoutSubvi ...
- IEnumerable<T>与IQueryable<T>以及.net的扩展方法
首先看看继承关系 public abstract class DbSet : DbQuery public abstract class DbQuery : IOrderedQueryable, IQ ...
- HDU 4003 [树][贪心][背包]
/* 大连热身A题 不要低头,不要放弃,不要气馁,不要慌张 题意: 给一棵树,每条边上有权值.给一个起点,放置n个机器人,要求使得任意一个节点至少被一个机器人经过. 每个机器人经过某条边时的代价为这条 ...
- LeetCode 397. Integer Replacement
397. Integer Replacement QuestionEditorial Solution My Submissions Total Accepted: 5878 Total Subm ...
- DataGridView导出到Excel的三个方法
#region DataGridView数据显示到Excel /// <summary> /// 打开Excel并将DataGridView控件中数据导出到Excel /// </s ...
- C++11引用临时变量的终极解析
工作中遇到一个引用临时变量的问题,经过两天的学习,私以为:不仅弄明白了这个问题,还有些自己的独到见解. 这里使用一个简单的例子来把自己的学习过程和理解献给大家,如果有什么问题请不吝指正. **** ...
- 六十三、android pad
参照连接:http://blog.csdn.net/guolin_blog/article/details/8881711 http://www.xue5.com/Mobile/Android/708 ...
- C# 访问MongoDB 通用方法类
using MongoDB.Driver; using System; namespace MongoDBDemo { public class MongoDb { public MongoDb(st ...
- Salesforce 数据清洗
新系统上线后,需要导入历史数据,但是旧数据格式,数据缺失,数据错误,奇异值,属性归类与新系统有很大的gap.因此我们需要建立一套数据动态清洗规则给Salesforce系统,通过这些规则自动清洗导入数据 ...