Java开发之文件下载
发布时间:2020-12-15 00:14:59 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 package com.example.web; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 package com.example.web; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; 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; import org.apache.commons.io.IOUtils; public class Download extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { response.setContentType("text/html;charset=utf-8"); OutputStream out=response.getOutputStream(); //获取要下载的文件名 String fileName=request.getParameter("loadname"); fileName=new String(fileName.getBytes("ISO-8859-1"),"UTF-8"); //得到下载文件的路径 String storPath=getServletContext().getRealPath("WEB-INF/files"); //得到源文件名 String oldName=fileName.split("_")[1]; //进一步根据hashcode来确定子文件夹 String childPath=generateDir(storPath,fileName); //判断要下载的文件是否还存在 File file=new File(storPath+File.separator+childPath+File.separator+fileName); if(!file.exists()){ out.write("你要下载的资源可能不存在".getBytes()); }else{ //如果存在就进行下载操作 InputStream is=new FileInputStream(file); //指明下载的响应头 response.setHeader("Content-Disposition","attachment;filename="+URLEncoder.encode(oldName,"UTF-8")); IOUtils.copy(is,out); is.close(); } } private String generateDir(String storePath,String fileName) { int hashcode=fileName.hashCode(); int dir1=hashcode & 0xf; int dir2=(hashcode & 0xf0)>>4; String childPath=dir1+File.separator+dir2; File file=new File(storePath,childPath); if(!file.exists()){ file.mkdirs(); } return childPath; } public void doPost(HttpServletRequest request,IOException { this.doGet(request,response); } } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |