AngularJS+Spring Boot如何从后台读取并显示图片

本文介绍了使用AngularJS和Spring Boot从后台读取并显示图片的步骤,包括前端发送请求接收二进制流,后台读取图片并返回,以及前端如何处理流以生成图片URL。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AngularJS+Spring Boot如何从后台读取并显示图片


  • 原理:
    1.前台向后台发送请求,设置头部的responseType: 'arraybuffer'来接受图片的二进制流。
    2.后台读取对应的图片,然后以二进制流的形式返回给前台。
    3.前台用Blob来重新生成图片,并用URL.createObjectURL()来生成图片的url。
  • 代码如下:
    html:
<img ng-src="{{image}}">

js:

$http({
    url:"",
    method: "get",
    params: params,
    responseType:"arraybuffer"
}).success(function(res){
    var blob = new Blob([data], {type: "image/jpeg"});
    $scope.image = URL.createObjectURL(blob );
})

后台:

@RequestMapping(value = "/image", method = GET)
@ResponseBody
public byte[] getImage(String imagePath) {
        ClassPathResource resource = new ClassPathResource(IMAGEPATH+imagePath);
        byte[] buffer = null;
        try {
            ByteArrayOutputStream output = new ByteArrayOutputStream();
            FileInputStream fis = new FileInputStream(resource.getFile());
            byte[] b = new byte[1024];
            int length;  
            while ((length = fis.read(b)) != -1)  
            {  
                output.write(b, 0, length);  
            }
            buffer = output.toByteArray();
            output.close();
            fis.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return buffer;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值