java根据名称下载文件

来源:互联网 发布:js 字符串对象转数组 编辑:程序博客网 时间:2024/06/18 04:48
public void downExcel(HttpServletResponse response) throws Exception{//获取导入文件类型String name = getRequest().getParameter("type");//获取目录URL savePath = Thread.currentThread().getContextClassLoader().getResource(File.separator);String urlString=savePath.toString().substring(6);File gf = new File(urlString);File file = new File(gf.getParent()+File.separator+"upload");String sname = null;//获取文件列表(带路径)File[] farr = file.listFiles();for(int i=0;i<farr.length;i++){String f=farr[i].toString(); if(f.contains(name)){sname=f.substring(f.lastIndexOf(File.separator)+1,f.length());break;}}String fileName = sname;//设置响应头,控制浏览器下载文件response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));//读取要下载的文件,保存到文件输入流FileInputStream in = new FileInputStream(file + File.separator + 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();}
原创粉丝点击