| 
 图像已经上传到本次磁盘d盘。不想让图片存在服务器,好像可以配置一个虚拟磁盘直接读取本地文件。求大大教怎么配置啊。还有jsp页面src怎么判断是否上传图片,没有就直接给他一个默认的值。 下面是代码: @RequestMapping(value=”/upload”)//配置控制器名称及其他信息 } jsp: <img id=path src=”${path}” class=”img-circle”style=”margin-left:30px;margin-top:30px;margin-bottom: 0px;”onclick=”upload();”> src怎么拿后台传的值,并且没有赋值一个默认地址  | 
|
100分  | 
 有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块里处理,配置一个默认图片地址返回就行(如果没有静态图片服务器,就得用第二种、第三种方法处理默认图片)  | 
| 
 我很奇怪的是他src里面怎么去获取  | 
|
| 
 那么src怎么拿后台传的值,并且没有赋值一个默认地址  | 
|
| 
 刚把model.put(“path”, “data:image/jpeg;base64,” + Base64.getEncoder().encode(bytes));加上 可是报错。导入jar包都显示没有getEncoder这个方法,应该用哪个jar包啊。不好意思啊,原来都没有接触过Base64  | 
|
| 
 我用的是: 
org.apache.commons.codec.binary.Base64 commons-codec-1.7.jar 方法是: Base64.encodeBase64String()  | 
|
| 
 难怪呢,我用的是commons-codec-1.4.jar 那么前端处理你知道吗,谢谢哈  | 
|
| 
 前端不需要处理,如果base压缩正确,浏览器就能显示。  | 
|
| 
 去下了1.7的jar这还是报错啊大哥  | 
|
 Base64.encodeBase64String()  | 
|