解决方案 »

  1.   

    有3种方法:
    第一种、配置一个Apache或Nginx服务器:<!--Apache-->
    <VirtualHost pic.example.com>
    ServerName pic.example.com
    DocumentRoot "D:/"
    </VirtualHost>
    <!--注意同时要配置权限--><!--Nginx-->
    server {
    listen       80;
    server_name  pic.example.com;
    location / {
    root  d:/;
    }
    }
    第二种:写一个方法处理图片请求:@RequestMapping("/images")
    public void images(@RequestParam String file, HttpServletResponse response){
        File f = new File("d:/", file);
        //response.getOutputStream().write......
    }
    第三种:在上传的方法中同步返回model.put("path", "img/" + file.getOriginalFilename());
    //这需要注意的是不能返回地址,只能返回Base64压缩的图片文件流,具体做法是:
    model.put("path", "data:image/jpeg;base64," + Base64.getEncoder().encode(bytes));
    //Base64压缩算法特别重要,否则浏览器不能解析。
    没有上传成功的话在cache块里处理,配置一个默认图片地址返回就行(如果没有静态图片服务器,就得用第二种、第三种方法处理默认图片)
      

  2.   


    我很奇怪的是他src里面怎么去获取
      

  3.   


    那么src怎么拿后台传的值,并且没有赋值一个默认地址
      

  4.   


    刚把model.put("path", "data:image/jpeg;base64," + Base64.getEncoder().encode(bytes));加上  可是报错。导入jar包都显示没有getEncoder这个方法,应该用哪个jar包啊。不好意思啊,原来都没有接触过Base64
      

  5.   

    我用的是:
    org.apache.commons.codec.binary.Base64
    commons-codec-1.7.jar
    方法是:
    Base64.encodeBase64String()
      

  6.   

    难怪呢,我用的是commons-codec-1.4.jar  那么前端处理你知道吗,谢谢哈
      

  7.   

    难怪呢,我用的是commons-codec-1.4.jar  那么前端处理你知道吗,谢谢哈
    前端不需要处理,如果base压缩正确,浏览器就能显示。
      

  8.   

      
    去下了1.7的jar这还是报错啊大哥
      

  9.   

    Base64.encodeBase64String()