js显示服务器路径下的图片,JS处理文件流(如果是图片,显示在当前页面)

这篇博客介绍了如何使用JavaScript处理服务器返回的图片文件流。通过原生Ajax请求设置响应类型为'blob',然后利用FileReader将其转换为base64格式。两种方法包括:1) 创建模拟a标签实现图片下载;2) 设置img元素的src属性在当前页面显示图片。
摘要由CSDN通过智能技术生成

用ajax请求图片资源,服务器以文件流的形式返回。

1、返回类型需要设置为“blob”,所以需要用原生ajax,不能使用jq(原因:jquery将返回的数据转换为了string,不支持blob类型)(当然,你也可以引入组件拓展jq的能力,我知道的有一个:jquery-ajax-blob-arraybuffer.js);

2、使用FileReader将文件流转换成base64格式;

3.1、然后通过模拟点击a标签下载该文件;

3.2、或者可以设置在img元素的src属性上,在当前页面显示出来。

3.1代码:

var xhr = new XMLHttpRequest();

xhr.open('GET', url, true); // 也可以使用POST方式,根据接口

xhr.responseType = "blob"; // 返回类型blob

// 定义请求完成的处理函数,请求前也可以增加加载框/禁用下载按钮逻辑

xhr.onload = function () {

// 请求完成

if (this.status === 200) {

// 返回200

var blob = this.response;

var reader = new FileReader();

reader.readAsDataURL(blob); // 转换为base64,可以直接放入a表情href

reader.onload = function (e) {

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值