文件以流的方式返回,图片流返回

  1. 文件以流的方式返回
	/**
	 * 根据图片路径获取文件流
	 * 
	 * @param response 返回值
	 * @param path 图片路径
	 * @throws ServletException
	 * @throws IOException
	 */
	@ApiOperation("根据图片路径获取文件流")
	@GetMapping("/getPresentImageStream")
	public void service(HttpServletResponse response,String filePath) throws ServletException, IOException {
		//文件以流的形式返回给前端
		OutputStream responseStream = null;
		try {
			byte[] resultBytes = FileUtils.readFileToByteArray(new File(filePath));
			response.setCharacterEncoding("UTF-8");
			response.setContentType("application/octet-stream");
			responseStream = response.getOutputStream();
			responseStream.write(resultBytes, 0, resultBytes.length);
			responseStream.flush();
			response.flushBuffer();
		} catch (Exception e) {
			if (null != responseStream) {
				try {
					responseStream.close();
				} catch (IOException ignored) {
				}
			}
		}
	}
  1. 图片流返回
@GetMapping("/getPresentImageStreamNew")
	public void getPresentImageStreamNew(HttpServletResponse response) throws ServletException, IOException {
		log.info("getPresentImageStreamNew filePath: {},fenceArea: {}", filePath,fenceArea);
	        		
		//原图的 BufferedImage
		BufferedImage bufferImage = ImageIO.read(new FileInputStream(filePath));
        ImageIO.write(bufferImage, "png", response.getOutputStream());    
	}
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Java的IO和Servlet来实现获取本地图片以流方式返回给前端。以下是一个示例代码: ```java @WebServlet("/getImage") public class ImageServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String imagePath = request.getParameter("imagePath"); // 获取图片路径 File imageFile = new File(imagePath); // 根据路径创建File对象 if (imageFile.exists()) { FileInputStream fis = new FileInputStream(imageFile); // 创建文件输入 OutputStream out = response.getOutputStream(); // 获取输出 byte[] buffer = new byte[1024]; int len; while ((len = fis.read(buffer)) != -1) { out.write(buffer, 0, len); // 将文件内容写入输出 } fis.close(); // 关闭输入 out.close(); // 关闭输出 } else { response.setStatus(HttpServletResponse.SC_NOT_FOUND); // 如果文件不存在,返回404状态码 } } } ``` 在前端中,可以使用layui的table模块,通过接口获取图片并显示在表格中。以下是一个示例代码: ```javascript layui.use(['table'], function() { var table = layui.table; table.render({ elem: '#imageTable', url: '/getImage?imagePath=/path/to/image.png', cols: [[ {field: 'id', title: 'ID'}, {field: 'name', title: 'Name'}, {field: 'image', title: 'Image', templet: function(d) { return '<img src="' + d.image + '">'; }} ]] }); }); ``` 在上面的代码中,url参数指定了获取图片的接口,并通过templet参数将图片显示在表格中。注意要将接口中的图片路径替换成实际的图片路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值