• 2021.4.27


    下载功能

    这里面很多我都没看懂,涉及浏览器相关的东西,但是改了改索性是能跑

    PhotoDao dao = PhotoDaoFactory.getPhotoDao();
    //创建dao层对象,和上面一样
    String uuid = request.getParameter("uuid");
    //还是获取uuid,同样可以用ssm的方法从前端获取
    PhotoModel photo = dao.getSingleByUuid(uuid);
    //调用方法,查找指定的对象
    if(photo!=null){
    //设置响应头--内容接收程序--浏览器看到这个响应头,就会把它认为的下载程序打开
    //(如果识别迅雷那么就会自动打开迅雷,如果没有则会打开一个“文件另存为”的对话框)
    response.setContentType("application/force-download");

    String realName = photo.getRealName();
    //把名称先拿出来
    String agent = request.getHeader("User-Agent");
    //获取用户使用的操作系统,cpu什么的一堆,具体我不知道原理


    if(agent.indexOf("Mozilla")!=-1){//火狐浏览器
    response.setHeader("Content-Disposition", "attachment;filename="+ new String(realName.getBytes("GB2312"),"ISO-8859-1"));
    }else{
    //解决中文乱码问题(只要用下面一句对文件名进行编码就行了)
    realName = URLEncoder.encode(realName, "utf-8");
    //使用指定的编码机制将字符串转换为 application/x-www-form-urlencoded 格式。
    response.setHeader("Content-Disposition", "attachment;filename=""+realName+""");
    //注意:“cttachment;”不能少,否则浏览器会直接在新窗口中打开
    }
    //此处是我的知识盲区。。。自行理解一下,不行照搬


    }else{
    //提示用户图片已经被删除
    }

  • 相关阅读:
    arcgis增大缩放级别
    arcgis地图窗口操作
    arcgis访问百度地图
    内存溢出和内存泄漏的区别、产生原因以及解决方案
    多线程之sleep和wait的区别
    java技术-重点方向
    技术思维VS管理思维
    几个问题
    写完百行代码,一次运行全部案例通过 是什么体验?
    分布式开放消息系统(RocketMQ)的原理与实践
  • 原文地址:https://www.cnblogs.com/buxiang-Christina/p/14909106.html
Copyright © 2020-2023  润新知