node.js 实现文件上传 和图片映射 文件下载(multer)

本文介绍了如何在Node.js环境中利用multer中间件处理multipart/form-data类型的文件上传,包括文件存储、读取以及重命名操作,同时展示了在Express应用中的具体实现和错误处理。
摘要由CSDN通过智能技术生成

Muter是一个node.js中间件。主要处理multupart/from-data类型的表单数据,常用于上传文件。在express.js应用中,multer使得上传文件变得更加简单。主要功能是将客户端上传的文件存储在服务器的本地文件系统中。它还添加了一个body对象以及file或files对象到express的请求对象中去。

代码如下所示

用这个首先当前Node下要有图片存储目录的那个文件夹的  然后普通的把js文件跑起来 

const express = require('express');
const multer = require('multer');
const app = express();
const fs = require('fs');
const upload = multer({ dest: 'uploads/' }); // 设置图片存储目录  
const port = 3000;
const { promisify } = require('util');
const rename = promisify(fs.rename)


app.get('/image', (req, res) => {
  try {
    const imagePath = `uploads/${req.query.imageName}` // 假设图片存储在uploads目录下  
    const imageBuffer = fs.readFileSync(imagePath); // 读取图片文件为Buffer类型  
    res.setHeader('Content-Type', 'image/jpeg'); // 设置响应头为图片类型  
    res.send(imageBuffer); // 将图片发送给客户端 
  } catch (err) {
    res.send({
      code: 500,
      msg: '服务器故障',
      error:err
    })
  }

});

app.post('/upload', upload.single('upfile'), async function (req, res, next) {
  try {
    let fileArr = req.file.originalname.split('.')
    let filetype = fileArr[fileArr.length - 1]
    await rename(
      './uploads/' + req.file.filename,
      './uploads/' + req.file.filename + '.' + filetype
    )
    res.send('文件上传成功!');
  } catch (err) {
    res.send({
      code: 500,
      msg: '服务器故障',
      error:err
    })
  }

})



app.listen(port, () => {
  console.log(`Server started on port ${port}`);
});

上图为文件上传成功截图

上图为获取文件截图

node.js yyds

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值