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

yizhihongxing

一、读取文件二进制

在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项目打包发布上线的方法步骤”的完整攻略,包括示例说明。 环境准备 需要Node.js环境、Vue CLI脚手架工具以及nginx服务器等。 在本地电脑上安装Vue CLI脚手架工具:npm install -g @vue/cli 创建Vue项目:vue create <project-name> 打包 进入项目所在目录:cd &lt…

    Vue 2023年5月28日
    00
  • Vue 中对图片地址进行拼接的方法

    当我们在 Vue 中需要加载图片时,有时候需要动态地拼接图片的地址。下面我为大家提供两种常用方法来实现这个需求。 方法一:使用插值表达式 我们可以使用 Vue 的插值表达式来动态地拼接图片地址,具体过程如下: <template> <div> <img :src="imagePath + imageName"…

    Vue 2023年5月28日
    00
  • this在vue和小程序中的使用详解

    this在vue和小程序中的使用详解 在Vue和小程序中,this指向的对象在不同的上下文中可能会有所不同,因此正确理解和使用this关键字非常重要。在本文中,将对Vue和小程序中this的用法进行详细的解释和说明,同时给出一些示例来加深理解。 Vue中的this 在Vue中,我们经常需要在组件的生命周期、方法和计算属性等中使用this。在Vue组件中,th…

    Vue 2023年5月27日
    00
  • vuecli中chainWebpack的常用操作举例

    下面是详细讲解”vuecli中chainWebpack的常用操作举例”的攻略: 什么是chainWebpack 在使用VueCLI创建的项目中,除了可以使用默认的配置之外,还可以自定义Webpack的一些配置。在Webpack的配置文件中,有一个configureWebpack选项,可以直接添加和修改Webpack的配置。而chainWebpack操作提供了…

    Vue 2023年5月27日
    00
  • vue+element DatePicker实现日期选择器封装

    下面是详细讲解 “vue+element DatePicker实现日期选择器封装”的完整攻略: 前置知识 在开始讲解之前,我们需要掌握一些前置知识。 首先,我们需要掌握 Vue.js 和 Element UI 的基本用法以及如何搭建 Vue.js 项目。其次,我们需要了解 DatePicker 组件在 Element UI 中的基本用法。最后,我们需要掌握如…

    Vue 2023年5月29日
    00
  • vue如何动态实时的显示时间浅析

    那我来分享一下Vue.js实时显示时间的攻略。 1. 使用Vue.js的生命周期函数 Vue.js生命周期函数是指Vue实例在不同阶段会自动执行的一系列函数。我们可以通过生命周期函数来实现实时显示时间的功能。 具体步骤如下: 1.1 创建一个Vue实例 使用Vue.js创建一个Vue实例,在data属性中新增一个变量time,用于存储当前时间,代码如下: v…

    Vue 2023年5月28日
    00
  • vue.js实现格式化时间并每秒更新显示功能示例

    下面是“vue.js实现格式化时间并每秒更新显示功能示例”的完整攻略。 思路分析 实现该功能需要使用Vue.js框架,其核心思路是将需要更新的时间保存在Vue实例的data中,然后利用Vue实例的响应式机制,在每秒钟更新时间的同时更新视图。 具体实现方法可以使用Vue.js提供的计算属性,或者通过Vue.js生命周期函数中的定时器实现。 计算属性实现示例 下…

    Vue 2023年5月28日
    00
  • Vue中ref的用法及演示

    下面是“Vue中ref的用法及演示”的完整攻略。 一、什么是Vue中的ref ref 是 Vue 提供的一个属性,可以用来给元素或组件注册引用信息。比如,渲染后,我们可以使用$refs来访问这个元素。 二、Vue中ref的用法 1. 绑定ref 我们对组件(或元素)绑定ref属性,Vue将会提供一个组件实例(或元素)的引用,我们在组件内可以使用 this.$…

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