zoukankan      html  css  js  c++  java
  • 请求本地图片

    如果js不能跨域访问本地资源,比如说图片,可以考虑通过请求的方式,通过后台访问返回到前台显示,示例如下:

    后台:

        /**
         * 后台读取卫星图片返回到前台显示
         * @param imgName
         * @param request
         * @param response
         * @return
         * @throws IOException
         */
        @RequestMapping(value = "/sateImg")
        public String getSateImg(@RequestParam(value="imgName")  String imgName, HttpServletRequest request,HttpServletResponse response) throws IOException {
            ServletOutputStream out = null;
            FileInputStream ips = null;
            try {
                //获取图片存放路径
                String imgPath;
                if (isDebug.equals("true")) {
                    URL dataUrl = this.getClass().getClassLoader().getResource("static/img/sate/sate.png");
                    ips = new FileInputStream(new File(dataUrl.toURI()));
                } else if(isDebug.equals("false")){
                    imgPath  = dir +"/sate/"+TimeUtil.format(new Date(),"yyyyMMdd")+"/" +imgName+".png";
                    ips = new FileInputStream(new File(imgPath));
                }
                response.setContentType("multipart/form-data");
                out = response.getOutputStream();
                //读取文件流
                int len = 0;
                byte[] buffer = new byte[1024 * 10];
                while ((len = ips.read(buffer)) != -1){
                    out.write(buffer,0,len);
                }
                out.flush();
                logger.info("获取卫星图片"+imgName+"成功");
            }catch (Exception e){
                logger.error("获取卫星图片失败");
            }finally {
                out.close();
                ips.close();
            }
            return null;
        }

     前台:

    /**
     * 加载卫星图层
     */
    function getSateLiteLayer() {
        if (sateLiteLayer == null) {
            var fileName = formatDate(new Date().getTime(),"ddHH") + "-" +Math.floor(new Date().getMinutes()/15);
            var imageUrl = 'rest/sateImg?imgName='+fileName;
            var bounds = [[-4.96, 50.02], [59.97, 144.97]];
            sateLiteLayer = L.imageOverlay(imageUrl, bounds, {opacity: 0.8});
        }
        return sateLiteLayer;
    }
  • 相关阅读:
    进程和线程的区别?什么时候用进程?什么时候用线程?----看到好的复制到自己的园子里哈哈
    HTTPS详细讲解一篇就够了
    MySQL存储过程
    Spring注入全局的HttpServletRequest
    Java进阶必备
    Java8新特性
    java.time包常用类API学习记录
    Maven常用插件
    maven-dependency-versions-check-plugin, Maven 插件查找依赖版本冲突
    Jackson自定义注解
  • 原文地址:https://www.cnblogs.com/unique1319/p/7691372.html
Copyright © 2011-2022 走看看