精华内容
下载资源
问答
  • 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;
        }
    

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

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

    展开全文
  • java 下载文件模板

    千次阅读 2018-08-16 13:41:59
    //获取文件的路径 String excelPath = request . getSession ( ) . getServletContext ( ) . getRealPath ( "/WEB-INF/file/" + "ceTemplate.xls" ) ; String fileName = "test.xls" . toString ( ) ; //...

    后台框架:SSM
    只需在Controller中写方法

    @Controller
    @RequestMapping("template")
    public class TemplateController {
    	
    	@RequestMapping("/downLoad.do")
        	public void downloadExcel(HttpServletResponse response,HttpServletRequest request) {
                try {
                    //获取文件的路径
                    String excelPath = request.getSession().getServletContext().getRealPath("/WEB-INF/file/"+"ceTemplate.xls");
                    String fileName = "test.xls".toString(); // 文件的默认保存名
                    // 读到流中
                    InputStream inStream = new FileInputStream(excelPath);//文件的存放路径
                    // 设置输出的格式
                    response.reset();
                    response.setContentType("bin");
                    response.addHeader("Content-Disposition",
                            "attachment;filename=" + URLEncoder.encode("test.xls", "UTF-8"));
                    // 循环取出流中的数据
                    byte[] b = new byte[200];
                    int len;
    
                    while ((len = inStream.read(b)) > 0){
                        response.getOutputStream().write(b, 0, len);
                    }
                    inStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
    }
    
    
    展开全文
  • 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 下载文件前后端

    千次阅读 2018-07-13 15:16:57
    前端:html&lt;a id="download" href="" onclick="File.downFile()"&gt;...下载使用手册&lt;/a&gt;jsfunction downFile() { $("#download").att

    前端:

    html

    <a id="download"  href="" οnclick="File.downFile()">
        <i class="fa fa-download"></i>下载使用手册</a>
    js
    function downFile() {
        $("#download").attr("href","file/download");
    }

    controller

    @Controller
    @RequestMapping("file")
    public class FileController extends BaseController {

    @RequestMapping(value = "download",method = RequestMethod.GET)
    public void download(HttpServletRequest request, HttpServletResponse response) throws IOException {
    
        //1.获取要下载的文件的绝对路径
               String realPath = "D:\\test.docx";
               //2.获取要下载的文件名
               String fileName = realPath.substring(realPath.lastIndexOf("\\")+1);
                response.reset();
                 response.setContentType("application/octet-stream");
               //3.设置content-disposition响应头控制浏览器以下载的形式打开文件
                response.setHeader("content-disposition", "attachment;filename="+URLEncoder.encode(fileName, "UTF-8"));
                InputStream in = new FileInputStream(realPath);//获取文件输入流
                int len = 0;
                byte[] buffer = new byte[1024];
                OutputStream out = response.getOutputStream();
                while ((len = in.read(buffer)) > 0) {
                     out.write(buffer,0,len);//将缓冲区的数据输出到客户端浏览器
                 }
                in.close();
    }}


    展开全文
  • package ... import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.net.URLEncoder; import javax.servlet.ServletException; import java...
  • 解决java下载文件中文文件名乱码问题(ie,谷歌,火狐) response.setCharacterEncoding(&amp;quot;utf-8&amp;quot;); response.setContentType(&amp;quot;application/msword&amp;quot;); ...
  • Java下载文件的几种方式

    万次阅读 多人点赞 2019-04-14 14:08:43
    1.以流的方式下载. public HttpServletResponse download(String path, HttpServletResponse response) { ... // path是指欲下载文件的路径。 File file = new File(path); // 取得文件名...
  • 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-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下载文件后台代码

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

    千次阅读 2016-06-28 13:21:24
    Java的web开发中,文件下载功能的文件名文件名乱码问题是经常遇到的。 对于这个问题,不同的浏览器,解决的方法不太一样。 IE的话,通过URLEncoder对filename进行UTF8编码。 而其他的浏览器(firefox、chrome、...
  • 前台是用html写的不是jsp, 用poi生成excel直接通过流写回浏览器来下载 想到使用ajax,但是ajax是不支持文件下载的,但是用其他的方法如何在下载文件的代码 执行完毕以后给前台返回一个状态码来通知下载完成?
  • import java.io.BufferedInputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.O....
  • Java下载文件获取真实文件名

    千次阅读 2012-07-24 16:26:01
    java"] String imgurl = "文件地址"; URL url = new URL(imgurl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.connect(); //获取文件名和扩展名 //先连接一...
  • java 下载文件乱码解决

    千次阅读 2017-03-15 15:44:06
     logger.info("==============>>下载文件不存在");  }  } catch (Exception e) {  e.printStackTrace();  } finally {  try {  if (ins != null) {  ins.close();  ins = ...
  • 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...
  • java下载文件成功但报错的解决方法

    千次阅读 2017-06-22 17:42:41
    SEVERE: Servlet.service() for servlet [jsp] in context with path [/exchange] threw exception [java.lang.IllegalStateException: getOutputStream() has already been called for this response] with root ...
  • 使用Servlet实现文件下载功能时,使用IE下载出现文件名乱码; 网上常见的解决办法是通过"user-agen"来判断浏览器: if (req.getHeader("user-agent").toLowerCase().contains("msie")) { // IE filename = ...
  • 在做java文件下载时碰到了这个问题,从前端传来的参数与后台接收的参数都是正确的,但是经过编码设置下载后,文件名中的符号,如[]被自动转义了,示例: response.addHeader("Content-Disposition", &...
  • 今天搞java下载文件并且保存到本地,运行的时候报了下面一个错误:将图片保存到d盘时拒绝访问    从网上查了一些资料,用了一下午的时间振宇解决了,也找到了出错的原因,出错原因是因为:FileOutputStream读取流...
  • // path是指欲下载文件的路径。 File file = new File ( path ) ; // 取得文件名。 String filename = file . getName ( ) ; // 取得文件的后缀名。 String ext = filename . substring ( ...
  • Java导出文件名中文乱码
  • 下图左侧是正确名称,右侧是下载之后的名称,中文变成了下划线 解决方式: 将字符编码转换成浏览器可以解析的字符编码 ISO8859-1 ’response.addHeader("Content-Disposition", "attachment;filename=" + new ...
  • ... response.setHeader( “Content-Disposition “, “attachment;...下载前询问(是打开文件还是保存到计算机) response.setHeader( “Content-Disposition “, “filename= “+filename);
  • java使用HttpGet下载文件

    千次阅读 2017-06-26 17:31:03
    java下载文件
  • Java实现文件下载

    万次阅读 2017-10-25 12:01:22
    Java实现文件下载
  • java文件下载

    千次阅读 2018-10-26 16:47:07
    Java后台文件下载的方法: public HttpServletResponse download(String path, HttpServletResponse response) { try { // path是指欲下载的文件的路径。 File file = new File(path); //如...
  • Java API文档 中文网页版

    万次下载 热门讨论 2007-03-21 14:25:52
    Java API文档中文版,欢迎下载!!
  • Java下载http文件

    千次阅读 2019-04-26 10:48:22
    使用org.apache.commons.io包中的FileUtils工具类实现: /** * 下载http文件 * * @param url 文件地址 * @param dir 存储目录 * @param fileName 存储文件名 * @return 下载后的文件存储路径 */ pub...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,262,998
精华内容 1,705,199
关键字:

java下载文档

java 订阅