第六天:知识点(上传下载)
来源:互联网 发布:linux vi 搜索字符串 编辑:程序博客网 时间:2024/04/29 19:36
一、文件上传下载:(单个文件)
第一步:把form表的enctype设置为:“multipart/form-data“,如下:
<form enctype="multipart/form-data" action="${pageContext.request.contextPath}/xxx.action" method="post"> <input type="file" name="uploadFile"></form>
第二步:在Action类中添加以下属性,属性红色部分对应于表单中文件字段的名称:
public class HelloWorldAction{ private File uploadFile;//得到上传的文件 private String uploadFileContentType;//得到文件的类型 private String uploadFileFileName;//得到文件的名称 //这里略省了属性的getter/setter方法 public String upload() throws Exception{ //获得上传路劲 String realpath = ServletActionContext.getServletContext().getRealPath("/images"); //转换成文件对象 File file = new File(realpath); //判断上传文件的文件夹是否存在 if(!file.exists()) file.mkdirs(); //执行上传 FileUtils.copyFile(uploadFile, new File(file, uploadFileFileName)); //成功跳转 return "success"; }}
第三步:配置struts.xml文件:
<package name="UploadAction" extends="struts-default"> <action name="upload" class="com.sxt.action.UploadAction" > <result>success.jsp</result> </action></package>
第四步:运行测试:。。。。。
二、文件上传下载:(多个文件)
第一步:把form表的enctype设置为:“multipart/form-data“,如下:
<form enctype="multipart/form-data" action="${pageContext.request.contextPath}/xxx.action" method="post"> <input type="file" name="uploadFile"></form>
第二步:在Action类中添加以下属性,属性红色部分对应于表单中文件字段的名称:
注意:多文件上传和单文件上传唯一不一样的地方就是如下:
public class HelloWorldAction{ private File[] uploadFile;//得到上传的文件 private String[] uploadFileContentType;//得到文件的类型 private String[] uploadFileFileName;//得到文件的名称 //这里略省了属性的getter/setter方法 public String upload() throws Exception{ //获得上传路劲 String realpath = ServletActionContext.getServletContext().getRealPath("/images"); //转换成文件对象 File file = new File(realpath); //判断上传文件的文件夹是否存在 if(!file.exists()) file.mkdirs(); //执行上传 for(int i=0;i<file.length;i++){ FileUtils.copyFile(uploadFile[i], new File(file, uploadFileFileName[i])); } //成功跳转 return "success"; }}
第三步:配置struts.xml文件:
<package name="UploadAction" extends="struts-default"> <action name="upload" class="com.sxt.action.UploadAction" > <result>success.jsp</result> </action></package>
第四步:运行测试:。。。。。
注意:上传文件的大小配置:struts.multipart.maxSize=2097152 拦截器默认上传不大于2M的文件,相反就会拦截
配置大于两M的struts.xml如下
<constant name="struts.multipart.maxSize" value="209715200"(上传文件的大小)></constant>
三、文件下载:
1、编写Action中的getInputStream()方法,将目标文件转化成输入流
public class DownloadAction extends ActionSupport{ private String fileName; //fileName的getter和setter方法 public InputStream getInputStream() throws Exception{ //转码问题 fileName=new String(fileName.getBytes("iso-8859-1"),"UTF-8"); //获得下载路径 String pathStr=ServletActionContext.getServletContext().getRealPath("/upload"); //追加下载的文件名 String path=pathStr+"/"+fileName; System.out.println("==="+path); InputStream inputStream=new FileInputStream(path); //设置编码级 fileName=new String(fileName.getBytes(),"iso-8859-1"); return inputStream;//返回流 }}
2、配置Struts.xml文件
<action name="download" class="com.xasxt.struts.action.DownloadAction"> <result type="stream"> <!-- 设置下载类型 此处不受限制 --> <param name="contentType">application/actet-stream</param> <!-- 获得现在对象 --> <param name="inputName">inputStream</param> <!-- 下载方式 --> <param name="contentDisposition">attachment;filename=${fileName}</param> <!-- 缓冲区 --> <param name="bufferSize">1024</param> </result></action>
0 0
- 第六天:知识点(上传下载)
- 第六章知识点总结
- JAVA中文件上传下载知识点整理
- JAVA中文件上传下载知识点整理
- JAVA中文件上传下载知识点整理
- 软件工程第六章知识点总结
- 第六章图知识点导图
- 《数据结构》第六章 知识点结构导图
- 快学Scala 第六章知识点总结
- 软件工程导论第六版的重要知识点
- JAVA第一课第六节知识点
- 第六章 数据结构相关知识点总结
- 机器学习 第六周 总结 知识点
- python连载第六篇~python知识点一网打尽
- 上传下载
- 上传下载
- 上传下载
- 上传下载
- java 定时器机制
- C++ primer explicit和virtual的使用
- EBSR12.1.2 在维护BOM和工艺路线时出现如下错误
- 参数job_queue_processes与Oracle jobs
- 面向切面编程(AOP)
- 第六天:知识点(上传下载)
- Titanium学习札记之ListItem、ListSection和ListView三者之间的关系和使用示例
- 使用PHP处理二维数组下三角
- iOS7适配遇到的一些问题
- Android四大组件和五大布局
- 《JMeter从入门到精通》之一——开始你的第一个JMeter脚本
- Linux防火墙
- How to: Enable ASP.NET Output Caching
- Linux下Bluez的编程实现