nodejs如何读取文件二进制 前端响应blob或base64显示图片

一、读取文件二进制

在Node.js中,要读取文件二进制,可以使用Node.js内置的fs模块。可以通过调用fs.readFile方法来读取文件并将其保存到Buffer中,然后将其转换为二进制字符串。

以下是一个简单的示例:

const fs = require('fs');

fs.readFile('./image.jpg', (err, image) => {
  if (err) throw err;

  const imageBinary = image.toString('binary');
  console.log(imageBinary);
});

这个示例从当前目录下的image.jpg文件中读取了二进制数据,并将其保存到Buffer对象中。然后,通过调用Buffer.toString方法将Buffer对象转换为二进制字符串,并打印到控制台中。

二、前端响应blob或base64显示图片

在前端,可以使用Blob对象或Base64字符串来显示图片。下面分别介绍它们的实现方法。

  1. Blob对象

要使用Blob对象来显示图片,可以使用XMLHttpRequest对象中的responseType属性。将其设置为"blob",即可将响应类型设置为Blob对象。然后,可以使用URL.createObjectURL方法将Blob对象转换为URL,并将其传递给img元素的src属性。

以下是实现代码:

const xhr = new XMLHttpRequest();
xhr.open('GET', '/image.jpg', true);
xhr.responseType = 'blob';
xhr.onload = () => {
  if (xhr.status === 200) {
    const imageBlob = xhr.response;
    const imageUrl = URL.createObjectURL(imageBlob);
    const img = document.createElement('img');
    img.src = imageUrl;
    document.body.appendChild(img);
  }
};
xhr.send();

这个示例发送了一个GET请求来获取图片,然后将其响应类型设置为Blob对象。在加载完成之后,通过调用URL.createObjectURL方法将Blob对象转换为URL,并使用img元素来显示它。

  1. Base64字符串

要使用Base64字符串来显示图片,可以在XMLHttpRequest对象中使用responseType属性将响应类型设置为text格式。在xhr.onload中,通过调用window.btoa方法将响应字符串转换为Base64字符串,并将其传递给img元素的src属性。

以下是实现代码:

const xhr = new XMLHttpRequest();
xhr.open('GET', '/image.jpg', true);
xhr.responseType = 'text';
xhr.onload = () => {
  if (xhr.status === 200) {
    const imageBase64 = xhr.response;
    const imageUrl = `data:image/jpeg;base64,${imageBase64}`;
    const img = document.createElement('img');
    img.src = imageUrl;
    document.body.appendChild(img);
  }
};
xhr.send();

这个示例发送了一个GET请求来获取图片,并将响应类型设置为文本格式。在加载完成之后,通过调用window.btoa方法将响应字符串转换为Base64字符串,并使用img元素来显示它。这里需要注意的是,在生成Base64字符串时需要指定相应图片的MIME类型。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:nodejs如何读取文件二进制 前端响应blob或base64显示图片 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • vue如何实时往数组里追加数据

    当我们需要在 Vue 中实时往数组里追加数据时,有以下几种方法可供选择: 1. 使用 push() 方法 Vue 的数据双向绑定机制,使得当数组发生变更时,页面会自动更新渲染。因此,使用 JavaScript 原生的 push() 方法向数组中追加数据就可以实现实时更新视图的效果。这个方法会接收待添加的数据,把它添加到数组的最后位置。示例代码如下: <…

    Vue 2023年5月27日
    00
  • 基于JWT的spring boot权限验证技术实现教程

    我将为您详细讲解如何实现基于JWT的Spring Boot权限验证技术。 1. JWT 的概念 JWT(JSON Web Token)是一种使用 JSON 格式编写的 token(令牌)标准,并且可被用于浏览器和移动端之间的身份认证。 JWT 由三部分组成:头部(header)、载荷(payload)和签名(signature)。 头部(header):包含…

    Vue 2023年5月28日
    00
  • vue项目常用组件和框架结构介绍

    下面我将为你详细讲解”vue项目常用组件和框架结构介绍”的攻略。 1. 常用组件 在Vue项目开发中,常用的组件有: (1) vue-router 路由是Vue应用中最重要的一部分,它可以帮助我们实现单页应用页面之间的跳转。vue-router是Vue官方提供的路由器,它能轻松地与Vue应用进行整合,可以实现前端路由的效果。 (2) vuex Vuex是一种…

    Vue 2023年5月28日
    00
  • Vue项目中如何使用Axios封装http请求详解

    使用Axios进行http请求可以帮助我们快速的开发Vue项目,Axios支持浏览器、node.js和可以异步的进程通信。在Vue项目中,我们可以封装Axios进行http请求,以便于让我们的代码更加集中和易于维护。 下面就是Vue项目中如何使用Axios封装http请求的详细攻略: 1. 安装Axios 首先,在Vue项目中使用Axios,需要进行安装。运…

    Vue 2023年5月28日
    00
  • 详解vue-cli项目中用json-sever搭建mock服务器

    下面是详解“详解vue-cli项目中用json-sever搭建mock服务器”的完整攻略: 一、什么是json-server JSON Server是一个基于Node.js的RESTful API服务器,可以通过在本地运行json文件中的数据创建完整的RESTful API,这在前端开发中用于测试和模拟数据非常有帮助。 二、在Vue-cli项目中安装json…

    Vue 2023年5月28日
    00
  • 基于Vue实现自定义组件的方式引入图标

    当我们在Vue项目中需要使用图标时,通常的做法是通过引入第三方的iconfont或者使用SVG等方式,但是如果项目需要使用自定义的图标时,我们需要基于Vue实现自定义组件的方式引入图标,下面是该过程的完整攻略: 创建Vue组件 首先,我们需要创建一个Vue组件,该组件的目的是用来渲染我们自定义的图标。组件代码如下: <template> <…

    Vue 2023年5月27日
    00
  • 手把手搭建安装基于windows的Vue.js运行环境

    下面是手把手搭建安装基于Windows的Vue.js运行环境的完整攻略: 1. 安装Node.js 首先,需要安装Node.js作为运行Vue.js项目的环境。可以从官网https://nodejs.org/en/下载适合自己操作系统的版本进行安装。 安装完成后,可以在命令行工具中输入以下命令来检查安装是否成功: node -v 如果安装成功,则会显示Nod…

    Vue 2023年5月27日
    00
  • vue3常用的API使用简介

    下面是关于“Vue3常用的API使用简介”的完整攻略。 什么是Vue3 Vue3是Vue.js框架的最新版本,它在性能、可维护性和开发体验上都有所提升。 Vue3具有模块化架构,可以在更小的体积下组装更丰富的功能,同时还增强了TypeScript的支持。 Vue3常用的API setup 函数 Vue3中,组件的逻辑可以写在 setup 函数中,它的返回值将…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部