node.js实现将图片转化为base64形式

第一步:引入fs模块和path模块

const path = require('path');
const fs = require('fs');

第二步:写好将图片转化为base64的方法

function parse(file) {
    let filePath = path.resolve(file); // 原始文件地址
    // let fileName = filePath.split('\\').slice(-1)[0].split('.'); // 提取文件名
    // let fileMimeType = mimeType.lookup(filePath); // 获取文件的 memeType

    // 如果不是图片文件,则退出
    // if (!fileMimeType.toString().includes('image')) {
    //     console.log(chalk.red(`Failed! ${filePath}:\tNot image file!`));
    //     return;
    // }

    // 读取文件数据
    let data = fs.readFileSync(filePath);
    data = Buffer.from(data).toString('base64');

    // // 转换为 data:image/jpeg;base64,***** 格式的字符串
    // let base64 = 'data:' + fileMimeType + ';base64,' + data;
    //
    // // 创建输出目录
    // let outPath = path.resolve('./base64/');
    // let outFileName = `${fileName.join('-')}.txt`;
    // let outFile = path.join(outPath, outFileName);
    // if (fs.existsSync(outPath)) {
    //     saveData(base64, outFile, filePath, outFileName);
    // } else {
    //     mkdirp(outPath, () => {
    //         saveData(base64, outFile, filePath, outFileName);
    //     });
    // }
    return data;
}

第三步:调用方法传入路径就可以得到base64的文件了

var file = "test/刘亦菲.jpg"
var data = parse(file)
console.log(data)

运行结果截图:

将会得到很长一串的base64文件.

在小程序开发中结合Node.js实现图片上传,通常会通过以下步骤: 1. **设置服务器环境**:首先你需要在后端创建一个Node.js服务器,可以使用Express等框架。安装必要的依赖,如`multer`用于处理文件上传。 ```bash npm install express multer ``` 2. **配置中间件**:在服务器应用中设置multer的中间件来处理图片上传。例如,你可以设置一个POST路由来接收图片数据。 ```javascript const express = require('express'); const multer = require('multer'); const app = express(); const upload = multer({ dest: 'uploads/' }); app.post('/upload', upload.single('image'), (req, res) => { if (!req.file) { return res.status(400).json({ error: 'No file uploaded.' }); } // 处理上传后的文件逻辑,比如保存文件名到数据库 const filename = req.file.filename; console.log(`File ${filename} uploaded.`); res.json({ status: 'success', filename }); }); ``` 3. **前端调用**:在微信小程序中,可以使用网络请求库(如axios、wxs)发起POST请求,并将图片转化为Base64格式的数据或者直接上传二进制流。 ```javascript wx.request({ url: 'https://your-node-server/upload', // 替换为你实际的服务器地址 method: 'post', data: { image: wx.getImageInfo({ src: '你的图片路径', success(res) { // 如果是Base64格式,可以这样发送 let formData = new FormData(); formData.append('image', res.data); axios.post(formData) .then(response => { console.log(response.data); }) .catch(error => { console.error('Upload failed:', error); }); } }), }, }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值