前后端开发中,图片上传到不同格式(二进制数据ORbase64编码)
1、base64编码
-
适合小文件(如图标、头像)。
-
实现简单,适合快速开发
前端通过 FileReader
将图片文件转换为 Base64 编码,然后上传到服务器
后端接收到 Base64 编码的图片后,将其解码为二进制数据(Buffer),然后保存为文件:
2、二进制数据
-
适合大文件(如高清图片、视频)。
-
性能更好,节省带宽。
使用 FormData
直接上传二进制文件:
const formData = new FormData();
formData.append('file', file); // 直接上传文件
const res = await uploadImage(formData); // 使用 FormData 上传
使用 multipart/form-data
解析二进制文件:
const multer = require('multer');
const upload = multer({ dest: 'uploads/' }); // 设置存储目录
router.post('/upload_image', authenticate.authenticateToken, upload.single('file'), (req, res) => {
const filePath = req.file.path; // 获取文件路径
res.json({ message: '上传成功', filePath });
});