精华内容
下载资源
问答
  • java 下载文件

    千次阅读 2017-02-16 16:48:12
    java 下载文件。前台传过来文件路径,从后台获取文件

    前台传过来文件路径,从后台获取文件

    后台代码

    
        import javax.servlet.http.HttpServletResponse;
        import javax.servlet.http.HttpSession;
        import java.io.File;
        import java.io.FileInputStream;
        import java.io.BufferedInputStream;
        import java.io.OutputStream;
        import java.io.BufferedOutputStream;
    
        @ResponseBody
        @RequestMapping(value = "app/file")
        public void getFile(String fileurl,  HttpSession session, HttpServletResponse response)
                throws IOException {
            String basePath = session.getServletContext().getRealPath("/"); // 获取基本路径    
            if (null!==fileurl && !fileurl.equals("")) {
                /* 第一步:根据文件路径获取文件 */
                File file = new File(basePath + fileurl);
                if (file.exists()) { // 文件存在
                    /* 第二步:根据已存在的文件,创建文件输入流 */
                    InputStream inputStream = new BufferedInputStream(new FileInputStream(file));
                    /* 第三步:创建缓冲区,大小为流的最大字符数 */
                    byte[] buffer = new byte[inputStream.available()]; // int available() 返回值为流中尚未读取的字节的数量
                    /* 第四步:从文件输入流读字节流到缓冲区 */
                    inputStream.read(buffer);
                    /* 第五步: 关闭输入流 */
                    inputStream.close();
    
                    String fileName = file.getName();// 获取文件名
                    response.reset();
                    response.addHeader("Content-Disposition",
                            "attachment;filename=" + new String(fileName.getBytes("utf-8"), "iso8859-1"));
                    response.addHeader("Content-Length", "" + file.length());
    
                    /* 第六步:创建文件输出流 */
                    OutputStream outputStream = new BufferedOutputStream(response.getOutputStream());
                    response.setContentType("application/octet-stream");
                    /* 第七步:把缓冲区的内容写入文件输出流 */
                    outputStream.write(buffer);
                    /* 第八步:刷空输出流,并输出所有被缓存的字节 */
                    outputStream.flush();
                    /* 第九步:关闭输出流 */
                    outputStream.close();
    
                } //end  if (file.exists())
            } else {
    
                return;
            }
    
    
    
        }

    前台测试
    这里写图片描述

    测试结果
    这里写图片描述

    展开全文
  • java下载文件

    万次阅读 2020-09-03 10:58:10
    import java.io.*; /** * \* Created with IntelliJ IDEA. * \* @author: xiyue * \* Date: 2020/4/16 * \* Time: 10:19 * \* To change this template use File | Settings | File Templ
    package com.chuangqi.tools;
    
    import javax.servlet.http.HttpServletResponse;
    import java.io.*;
    
    /**
     * \* Created with IntelliJ IDEA.
     * \* @author: xiyue
     * \* Date: 2020/4/16
     * \* Time: 10:19
     * \* To change this template use File | Settings | File Templates.
     * \* Description:
     * \
     */
    public class DownloadUtils {
        //下载文件调用的本地方法
        public static  boolean downLoadFile(HttpServletResponse response, String name, File file) {
            if (file.exists()) {
                try {
                    name = new String(name.getBytes("UTF-8"), "ISO-8859-1");
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }
                // 设置强制下载不打开
                response.setContentType("application/force-download");
                response.addHeader("Content-Disposition", "attachment;fileName=" + name);
                byte[] buffer = new byte[1024];
                FileInputStream fis = null;
                BufferedInputStream bis = null;
                try {
                    fis = new FileInputStream(file);
                    bis = new BufferedInputStream(fis);
                    OutputStream outputStream = response.getOutputStream();
                    int i = bis.read(buffer);
                    while (i != -1) {
                        outputStream.write(buffer, 0, i);
                        i = bis.read(buffer);
                    }
                    return true;
                } catch (Exception e) {
                    e.printStackTrace();
                } finally {
                    if (bis != null) {
                        try {
                            bis.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                    if (fis != null) {
                        try {
                            fis.close();
                        } catch (IOException e) {
                            e.printStackTrace();
    
                        }
                    }
    
                }
    
            }
            return false;
        }
    }
    
    展开全文
  • java下载文件到浏览器默认路径

    千次阅读 热门讨论 2019-05-07 09:43:37
    java下载文件到浏览器默认路径 一、controller层代码: @RequestMapping("/downExcel") @ResponseBody public Object downExcel(){ try { File file=ResourceUtils.getFile("classpath:doc"); //获取resour...

    java下载文件到浏览器默认路径

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mengmeng2222222
    一、controller层代码:

     @RequestMapping("/downExcel")
        @ResponseBody
        public Object downExcel(){
            try {
                File file=ResourceUtils.getFile("classpath:doc"); //获取resources下面的doc下面的文件
                File[] files=file.listFiles();
                return FileUtil.downloadFile(files[0]);  //files[0]是要下载到默认浏览器路径的文件
            } catch (Exception e) {
                return MarkUtil.markRetunMsg(false,"下载失败");
            }
        }
    

    注释:运用spring中的ResourceUtils.getFile读取jar包内文件,也就是获取的是下图中的文件
    在这里插入图片描述
    二、FileUtil类中的downloadFile方法如下:

     /**
         * 文件下载
         * @param file
         * @throws IOException
         */
        public static ResponseEntity<InputStreamResource>  downloadFile(File file) throws IOException {
            if (file.exists()) {
                FileSystemResource fileSource = new FileSystemResource(file);
                return downloadFile(fileSource.getInputStream(),fileSource.getFilename());
            }
            return null;
        }
        public static ResponseEntity<InputStreamResource> downloadFile(InputStream in,String fileName) {
            try {
                byte[] testBytes = new byte[in.available()];
                HttpHeaders headers = new HttpHeaders();
                headers.add("Cache-Control", "no-cache, no-store, must-revalidate");
                headers.add("Content-Disposition", String.format("attachment; filename=\"%s\"", MarkUtil.convertFileName(fileName)));
                headers.add("Pragma", "no-cache");
                headers.add("Expires", "0");
                return ResponseEntity
                        .ok()
                        .headers(headers)
                        .contentLength(testBytes.length)
                        .contentType(MediaType.parseMediaType("application/octet-stream"))
                        .body(new InputStreamResource(in));
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
    

    三、MarkUtil类中的convertFileName方法如下:

    /**
     * chinese code convert
     * @param fileName
     * @return
     */
    public static String convertFileName(String fileName) {
            if(isContainChinese(fileName)) {
                try {
                    fileName = URLEncoder.encode(fileName, "UTF-8");
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }
            }
            return fileName;
        }
    

    亲测有效!!!!!如果对你有帮助了,一定要点个赞哇,整理不易。

    可以转载,但是务必加上来源,谢谢!

    展开全文
  • SpringBoot后台java下载文件及注意的地方 下载效果 后台关键代码 控制类中   @RequestMapping("/file") @ResponseBody public void file(HttpServletRequest request, HttpServletResponse ...

    SpringBoot后台java下载文件及注意的地方

    下载效果

    后台关键代码

    • 控制类中

       

      @RequestMapping("/file")
      @ResponseBody
      public void file(HttpServletRequest request, HttpServletResponse response) {
          String name = request.getParameter("file");
          String path = "/file" + File.separator + name;
      
          File imageFile = new File(path);
          if (!imageFile.exists()) {
              return;
          }
      
          //下载的文件携带这个名称
          response.setHeader("Content-Disposition", "attachment;filename=" + name);
          //文件下载类型--二进制文件
          response.setContentType("application/octet-stream");
      
          try {
              FileInputStream fis = new FileInputStream(path);
              byte[] content = new byte[fis.available()];
              fis.read(content);
              fis.close();
      
              ServletOutputStream sos = response.getOutputStream();
              sos.write(content);
      
              sos.flush();
              sos.close();
          } catch (Exception e) {
              e.printStackTrace();
          }
      }
      

    注意事项

    1. 这里没有控制文件的名称为中文【自行编解码】
    2. response中设置返回的内容格式为【二进制格式】
    3. 当不写response.setHeader("Content-Disposition", "attachment;filename=" + name);的时候,浏览器读到有后缀的文件时会尝试打开;即使下载也会命名为file。
    4. response.setHeader("Content-Disposition", "attachment;filename=" + name);
      • attachment强制性下载
      • filename下载文件的名称
    5. 其他。。。
    展开全文
  • 关于java下载文件设置对应的相应头

    千次阅读 2019-04-10 10:33:14
    关于java下载文件设置对应的相应头 if (null == queryEntity) { queryEntity = new ZpgwxxEntity(); } // .创建文件名 String fileName = "export.xls"; // 返回文件相应头设置 res.setHeader(...
  • java下载文件时文件名出现乱码的解决办法: String userAgent = request.getHeader("User-Agent"); String formFileName = file.getFileName(); // 针对IE或者以IE为内核的浏览器: if (userAgent....
  • Java下载文件时文件名用new String(fileName.getBytes(),"ISO8859-1"); 转码就对了。 1. String fileName=new String(URLEncoder.encode(fileName,"utf-8")); getResponse().addHeader("Content-Disposition",...
  • java 下载文件模板

    千次阅读 2018-08-16 13:41:59
    //获取文件的路径 String excelPath = request . getSession ( ) . getServletContext ( ) . getRealPath ( "/WEB-INF/file/" + "ceTemplate.xls" ) ; String fileName = "test.xls" . toString ( ) ; //...
  • 1、java下载文件乱码:  String userAgent = request.getHeader("User-Agent");  String formFileName = file.getFileName();  // 针对IE或者以IE为内核的浏览器:  if (userAgent.contains("...
  • Java下载文件的几种方式

    万次阅读 多人点赞 2019-04-14 14:08:43
    1.以流的方式下载. public HttpServletResponse download(String path, HttpServletResponse response) { ... // path是指欲下载文件的路径。 File file = new File(path); // 取得文件名...
  • 解决java下载文件中文文件名乱码问题(ie,谷歌,火狐) response.setCharacterEncoding(&amp;quot;utf-8&amp;quot;); response.setContentType(&amp;quot;application/msword&amp;quot;); ...
  • Java下载文件后台代码

    千次阅读 2016-07-29 16:41:35
    文件下载功能是web开发中经常使用到的功能,使用HttpServletResponse对象就可以实现文件下载
  • Java下载文件工具类包

    千次阅读 2018-07-26 14:59:03
    import javax.servlet.ServletOutputStream; import javax.servlet.... import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOEx...
  • java 下载文件前后端

    千次阅读 2018-07-13 15:16:57
    前端:html&lt;a id="download" href="" onclick="File.downFile()"&gt;...下载使用手册&lt;/a&gt;jsfunction downFile() { $("#download").att
  • 想用java下载知网上的pdf文件 如http://www.cnki.com.cn/Article/CJFDTOTAL-DNBC201521037.htm 点击pdf下载 弹出的是这个网址...
  • java下载文件指定目录下的文件

    千次阅读 2019-02-26 14:37:00
    // 以流的形式下载文件。 InputStream fis = new BufferedInputStream(new FileInputStream(path)) byte[] buffer = new byte[fis.available()] fis.read(buffer) fis.close() // 清空respons response.reset...
  • java 下载文件乱码解决

    千次阅读 2017-03-15 15:44:06
     logger.info("==============>>下载文件不存在");  }  } catch (Exception e) {  e.printStackTrace();  } finally {  try {  if (ins != null) {  ins.close();  ins = ...
  • package ... import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.net.URLEncoder; import javax.servlet.ServletException; import java...
  • java下载文件并设置格式

    千次阅读 2018-01-10 16:43:39
    public void doGet(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException {  File filename = new File("D:\\chengxu\\ML\\2.excel"...  //设置文件C...
  • 原文地址:... 1.以流的方式下载. public HttpServletResponse download(String path, HttpServletResponse response) { try { // path是指欲下载文件的路径。 ...
  • Java下载文件,文件名中文乱码问题

    千次阅读 2016-06-28 13:21:24
    Java的web开发中,文件下载功能的文件名文件名乱码问题是经常遇到的。 对于这个问题,不同的浏览器,解决的方法不太一样。 IE的话,通过URLEncoder对filename进行UTF8编码。 而其他的浏览器(firefox、chrome、...
  • 在做java文件下载时碰到了这个问题,从前端传来的参数与后台接收的参数都是正确的,但是经过编码设置下载后,文件名中的符号,如[]被自动转义了,示例: response.addHeader("Content-Disposition", &...
  • Java下载文件获取真实文件名

    千次阅读 2012-07-24 16:26:01
    java"] String imgurl = "文件地址"; URL url = new URL(imgurl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.connect(); //获取文件名和扩展名 //先连接一...
  • 今天搞java下载文件并且保存到本地,运行的时候报了下面一个错误:将图片保存到d盘时拒绝访问    从网上查了一些资料,用了一下午的时间振宇解决了,也找到了出错的原因,出错原因是因为:FileOutputStream读取流...
  • 前台是用html写的不是jsp, 用poi生成excel直接通过流写回浏览器来下载 想到使用ajax,但是ajax是不支持文件下载的,但是用其他的方法如何在下载文件的代码 执行完毕以后给前台返回一个状态码来通知下载完成?

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 65,608
精华内容 26,243
关键字:

java下载文件

java 订阅