文件的下载

    /**
    *  描述:下载图片
    *  时间[2019/12/11 17:56]
    *  作者:李清伟
    *  params:                  return:
    */

    @RequestMapping("downLoadImg")
    @ResponseBody
    public void downLoadImg(HttpServletRequest request, HttpServletResponse response){

        /*获取文件存贮的路径*/
        String filePath = uploadPath;
        /*获取需要下载的文件名*/
        String fileName = request.getParameter("imgNewName");
//        String fileName = "101b0699-3b32-4ca8-9f96-f7efc5a22e49.jpg";
        /*若文件名不为空*/
        if (fileName!=null){
            File file1 = new File(filePath,fileName);
                /*若文件路径存在*/
                if (file1.exists()){
                    /*设置强制不打开*/
                    response.setContentType("application/force-download");
                    /*设置文件的编码*/
                    response.setCharacterEncoding(request.getCharacterEncoding());
                    /*设置文件请求头*/
                    response.setHeader("Content-Disposition","attachment; filename="+fileName);
                    /*将文件放入输出流*/
                    BufferedInputStream bis = null;
                    try {
                        bis = new BufferedInputStream(new FileInputStream(file1));
                        IOUtils.copy(bis,response.getOutputStream());
                    } catch (IOException e) {
                        e.printStackTrace();
                    } finally {
                        if (bis!= null){
                            try {
                                bis.close();
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                    }

                }

        }
    }

文件名在页面上点击下载时在前台传过来

**注意:**如果是上传下载一起的话,在页面上传完毕需要下载下来,此时需要些下载的方法:下载的方法不能使用ajax请求(自己因为使用了ajax请求,致使图片一致下不下来),应该使用window.open()方法,这样下载就没问题了

  function downLoad(imgNewName) {debugger
        var url = '${ctx}/upload/downLoadImg?imgNewName='+imgNewName;
        window.open(encodeURI(url),"_blank");
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值