资源简介
jsp实现文件上传下载
代码片段和文件信息
package me.gacl.web.controller;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URLEncoder;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class DownLoadServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request HttpServletResponse response)
throws ServletException IOException {
//得到要下载的文件名
String fileName = request.getParameter(“filename“); //23239283-92489-阿凡达.avi
fileName = new String(fileName.getBytes(“iso8859-1“)“UTF-8“);
//上传的文件都是保存在/WEB-INF/upload目录下的子目录当中
String fileSaveRootPath=this.getServletContext().getRealPath(“/WEB-INF/upload“);
//通过文件名找出文件的所在目录
String path = findFileSavePathByFileName(fileNamefileSaveRootPath);
//得到要下载的文件
File file = new File(path + “\\“ + fileName);
//如果文件不存在
if(!file.exists()){
request.setAttribute(“message“ “您要下载的资源已被删除!!“);
request.getRequestDispatcher(“/message.jsp“).forward(request response);
return;
}
//处理文件名
String realname = fileName.substring(fileName.indexOf(“_“)+1);
//设置响应头,控制浏览器下载该文件
response.setHeader(“content-disposition“ “attachment;filename=“ + URLEncoder.encode(realname “UTF-8“));
//读取要下载的文件,保存到文件输入流
FileInputStream in = new FileInputStream(path + “\\“ + fileName);
//创建输出流
OutputStream out = response.getOutputStream();
//创建缓冲区
byte buffer[] = new byte[1024];
int len = 0;
//循环将输入流中的内容读取到缓冲区当中
while((len=in.read(buffer))>0){
//输出缓冲区的内容到浏览器,实现文件下载
out.write(buffer 0 len);
}
//关闭文件输入流
in.close();
//关闭输出流
out.close();
}
/**
* @Method: findFileSavePathByFileName
* @Description: 通过文件名和存储上传文件根目录找出要下载的文件的所在路径
* @Anthor:孤傲苍狼
* @param filename 要下载的文件名
* @param saveRootPath 上传文件保存的根目录,也就是/WEB-INF/upload目录
* @return 要下载的文件的存储目录
*/
public String findFileSavePathByFileName(String filenameString saveRootPath){
int hashcode = filename.hashCode();
int dir1 = hashcode&0xf; //0--15
int dir2 = (hashcode&0xf0)>>4; //0-15
String dir = saveRootPath + “\\“ + dir1 + “\\“ + dir2; //upload\2\3 upload\3\5
File file = new File(dir);
if(!file.exists()){
//创建目录
file.mkdirs();
}
return dir;
}
public void doPost(HttpServletRequest request HttpServletResponse response)
throws ServletException IOException {
doGet(request response);
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 845 2017-05-08 18:10 FileUploadAndDownLoad\.classpath
文件 1054 2017-05-08 18:10 FileUploadAndDownLoad\.project
文件 503 2017-05-08 18:10 FileUploadAndDownLoad\.settings\.jsdtscope
文件 364 2017-05-08 18:10 FileUploadAndDownLoad\.settings\org.eclipse.jdt.core.prefs
文件 515 2017-05-08 18:10 FileUploadAndDownLoad\.settings\org.eclipse.wst.common.component
文件 349 2017-05-08 18:10 FileUploadAndDownLoad\.settings\org.eclipse.wst.common.project.facet.core.xm
文件 49 2017-05-08 18:10 FileUploadAndDownLoad\.settings\org.eclipse.wst.jsdt.ui.superType.container
文件 6 2017-05-08 18:10 FileUploadAndDownLoad\.settings\org.eclipse.wst.jsdt.ui.superType.name
文件 3616 2017-05-08 19:33 FileUploadAndDownLoad\build\classes\me\gacl\web\controller\DownLoadServlet.class
文件 2602 2017-05-08 19:33 FileUploadAndDownLoad\build\classes\me\gacl\web\controller\ListFileServlet.class
文件 1280 2017-05-08 19:33 FileUploadAndDownLoad\build\classes\me\gacl\web\controller\UploadHandleServlet$1.class
文件 6621 2017-05-08 19:33 FileUploadAndDownLoad\build\classes\me\gacl\web\controller\UploadHandleServlet.class
文件 3214 2017-05-08 19:24 FileUploadAndDownLoad\src\me\gacl\web\controller\DownLoadServlet.java
文件 2753 2017-05-08 19:24 FileUploadAndDownLoad\src\me\gacl\web\controller\ListFileServlet.java
文件 9690 2017-05-08 19:00 FileUploadAndDownLoad\src\me\gacl\web\controller\UploadHandleServlet.java
文件 644 2017-05-08 19:59 FileUploadAndDownLoad\WebContent\listfile.jsp
文件 180 2017-05-08 18:47 FileUploadAndDownLoad\WebContent\message.jsp
文件 39 2017-05-08 18:10 FileUploadAndDownLoad\WebContent\me
文件 538 2017-05-08 18:47 FileUploadAndDownLoad\WebContent\upload.jsp
文件 57779 2017-05-08 18:11 FileUploadAndDownLoad\WebContent\WEB-INF\lib\commons-fileupload-1.2.1.jar
文件 87776 2017-05-08 18:11 FileUploadAndDownLoad\WebContent\WEB-INF\lib\commons-io-1.3.2.jar
文件 414240 2017-05-08 19:29 FileUploadAndDownLoad\WebContent\WEB-INF\lib\jstl-1.2.jar
文件 393259 2017-05-08 19:33 FileUploadAndDownLoad\WebContent\WEB-INF\lib\standard.jar
文件 2254 2017-05-08 19:59 FileUploadAndDownLoad\WebContent\WEB-INF\web.xm
目录 0 2017-05-08 20:35 FileUploadAndDownLoad\build\classes\me\gacl\web\controller
目录 0 2017-05-08 20:35 FileUploadAndDownLoad\build\classes\me\gacl\web
目录 0 2017-05-08 20:35 FileUploadAndDownLoad\src\me\gacl\web\controller
目录 0 2017-05-08 20:35 FileUploadAndDownLoad\build\classes\me\gacl
目录 0 2017-05-08 20:35 FileUploadAndDownLoad\src\me\gacl\web
目录 0 2017-05-08 20:35 FileUploadAndDownLoad\build\classes\me
............此处省略14个文件信息
- 上一篇:java基础习题
- 下一篇:Eclipse中使用jstl所需jar包和tld文件-
相关资源
- Java Web条件查询含源码
- 基于Java Web技术开发的BBS论坛系统源代
- 润乾报表在web工程中的部署
- jspSmartUpload完美支持中文_源码和jar包
- java web 聊天室 源码
- JSP开发的网络书店以及论文
- 许愿墙java 源码
- jsp页面打印
- JavaWeb开发技术课件
- 计算机实习日记15篇
- jsp用户注册登录数据库实现代码
- Jsp网络购物系统类图、用例图
- java jsp登陆代码 用jsp跟mysql一起实现
- 投票系统,基于mvc开发,jsp+servlet+m
- 用ajax实现HTML 功能,从而达到动态从
- 基于J2EE的 学生宿舍管理系统内含数据
- JAVA JSP工资管理系统 源代码 论文
- java-javaweb以及各种框架教学视频百度
- 使用servlet和jsp做的一个简易的微博系
- jsp文件上传
- JSP外文文献及翻译
- 利用JPcap实现嗅探器Snifer,以web形式来
- 使用 jsPlumb 绘制拓扑图的通用方法
- 用java写的一个简单web浏览器
- JSP基于B/S的大学生社团管理系统
- javaweb实现的购物车案例
- 税收计算系统-jsp
- java实现的highcharts与ajax结合动态实时
- jsp-api.jar
- EJB3.0——jsp网页调用
评论
共有 条评论