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

发布时间:2024年01月19日

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

文章来源:https://blog.csdn.net/qq_44428688/article/details/135689655
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。