public void downloading(HttpServletResponse response) throws Exception{ //String path = request.getSession().getServletContext().getRealPath("/"); //设置源文件路径,此处为桌面 String path = "C:"+File.separator+"Users"+File.separator+"Administrator"+File.separator+"Desktop"; //设置文件名 String fileName = "流程图.pptx"; File file = new File(path+File.separator+fileName); if(file.exists()){ //写明要下载文件的大小(不要也行,一般浏览器都会自动计算) response.setContentLength((int) file.length()); //设置下载文件名编码 fileName = URLEncoder.encode(fileName, "UTF-8"); //告诉浏览器用下载的方式打开文件 response.setHeader("Content-Disposition", "attachment;filename="+fileName); //指明response的返回对象是文件流 response.setContentType("application/octet-stream"); FileInputStream fileInputStream = new FileInputStream(file); BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream); //bufferedInputStream.available()是输入流不被阻塞情况下,下一次可以读取到的数据长度 byte[] b = new byte[bufferedInputStream.available()]; //先把文件内容读到缓冲区 bufferedInputStream.read(b); //再把缓冲区内容写到response的输出流 OutputStream outputStream = response.getOutputStream(); outputStream.write(b); bufferedInputStream.close(); outputStream.flush(); outputStream.close(); }else{ System.out.println("文件不存在!"); } }
JAVA实现文件下载
猜你喜欢
转载自blog.csdn.net/weixin_40162920/article/details/79581118
今日推荐
周排行