加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java文件下载

发布时间:2020-12-15 00:29:22 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; im

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

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】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读