记录一下自己通过流来将本地图片传给前端.
当时参考的文章
JAVA使用字节流将本地图片传到前端_AIAS编程有道-CSDN博客
代码介绍
Service层
package com.sine.hbp.batchRequestManagement.service.impl;
import com.sine.hbp.batchRequestManagement.service.PictureServletService;
import org.springframework.stereotype.Service;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
@Service
public class PictureServletImpl implements PictureServletService {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
//使用字节流读取本地图片
ServletOutputStream out=null;
BufferedInputStream buf=null;
//创建了一个文件对象,对应的填图片存放的路径(需要的请填写自己的)
File file = new File("C:\\Users\\Administrator\\Desktop\\text.JPG");
try {
//使用输入读取缓冲流读取一个文件输入流
buf = new BufferedInputStream(new FileInputStream(file));
//利用respone获取一个字节流输出对象
out = response.getOutputStream();
//定义个数组,由于读取缓冲流的内容
byte[] buffer = new byte[1024];
//循环一直读取缓冲流中的内容到输出的对象中
while (buf.read(buffer)!=-1){
out.write(buffer);
}
//写出请求的地方
out.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
//关闭
if (buf!=null) buf.close();
if (out!=null) out.close();
}
}
}
Controller层
package com.sine.hbp.batchRequestManagement.controller;
import com.sine.common.controller.BaseController;
import com.sine.hbp.batchRequestManagement.service.PictureServletService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import sun.misc.BASE64Encoder;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
@Controller
//写好对应的路径
@RequestMapping("/pictureServlet")
public class PictureServletController extends BaseController {
@Autowired
PictureServletService pictureServletService;
@RequestMapping("/requestPicture")
@ResponseBody
//调用图片
public void getBase64(HttpServletRequest request, HttpServletResponse response) {
try {
//调用doGet方法会抛出异常,捕获一下
pictureServletService.doGet(request,response);
} catch (IOException e) {
e.printStackTrace();
}
}
}
前端代码
function loadQueryCondition() {
$("#picture").attr("src",basePath + "/pictureServlet/requestPicture");
}
<img id="picture" width="110" height="160" src=""></th>
这样就可以把图片在前端展示出来了.