资源简介
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源码,servlet+jsp),适
- 美食天下项目Android版源码和Web版源码
- JSP企业人事管理系统设计(源代码+论
- 实现一个图书管理系统
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- JSP,SQL,MVC的选课系统
- 基于JSP的学生宿舍管理系统(源码 数
- JSP选课管理系统
- mysql jsp网站源码下载
- JSP做的化妆品商城
- Jsp购物车实例
- 基于JSP的校友信息管理系统(添加数
- 基于jsp的bbs论坛 非常详细
- jsp oracle通讯录
- JSP学生信息管理系统 Mysql数据库
- 使用jsp servlet做的投票系统
- JSP登陆验证 实现JSP用户名 密码 验
- jsp基于servlet 图书馆管理系统
- jsp学生成绩管理系统.rar
- 在线考试系统源代码(jsp)
- 超级好的纯jsp写的聊天室
- JSP 网上购物网页项目
- JSP+mysql新闻发布系统.rar
- jsp 学生信息管理系统设计与实现
- jsp与SQL Server数据库实现的客户注册登
- 简易教学管理系统(jsp spring struts h
- java web网络通讯录
- 学生信息管理系统 JSP MySQL
- jsp ajax 三级联动菜单
评论
共有 条评论