nodejs+express+multer搭建文件上传文件预览功能

 更新时间:2025年03月28日 10:01:11   作者:xs_2012  
Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具,今天给大家分享nodejs+express+multer搭建文件上传文件预览功能,感兴趣的朋友一起看看吧

前言

今天准备用nodejs写一个简单的图片上传接口,目的实现图片上传,上传后的图片可预览。使用到的express,multer

一、express是什么?

Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。

二、multer是什么?

Multer 是一个node.js中间件,用于处理 multipart/form-data类型的表单数据,主要用于上传文件。

三、使用步骤

1.express使用

安装express,新建一个js文件,我这里新建一个express_test.js的文件

var express = require('express');
var app = express();
app.get('/', function (req, res) {
	res.sendStatus(200)
})
//创建实例
var server = app.listen(8081, function () {
	var port = server.address().port
	console.log("应用实例,访问地址为 http://127.0.0.1:%s", port)
})

终端输入命令 node .\express_test.js

浏览器打开显示如下

2.multer使用

安装multer之后,在express_test.js所在目录下新建一个文件夹,名为uploads,接着输入如下代码

var fs = require('fs');//文件管理相关
var multer = require('multer');//nodejs中间件,用于处理上传文件
// 创建 multer 实例并设置存储引擎
const storage = multer.diskStorage({
	destination: function (req, file, cb) {
		// 指定文件上传的目录
		cb(null, 'uploads/');
	},
	filename: function (req, file, cb) {
		cb(null, file.originalname);
	}
});
/*设置过滤器,可以上传哪类文件*/
const fileFilter = (req, file, cb) => {
	if (file.mimetype === 'image/jpeg' || file.mimetype === 'image/png') {
		cb(null, true);
	} else {
		cb(null, false);
	}
}
const upload = multer({ storage: storage, fileFilter: fileFilter });

以上代码主要实现上传目录的配置,可上传文件的类型。接着继续输入如下代码

// 单个文件上传
app.post('/upload', upload.single('file'), (req, res) => {
	console.log(req.file)
	if (req.file) {
		let file = req.file;
		let date = Date.now();
		// 重命名文件
		fs.renameSync('./uploads/' + file.filename, './uploads/' + date + file.originalname);
		res.json({code:200, msg: '上传成功', imgUrl: 'http://127.0.0.1:8081' + '/uploads/' + date + file.originalname })
	}
	else {
		res.json({code:401,msg:'上传失败,请上传正确格式的图片', data: null})
	}
});

再次运行后,使用postman测试文件上传,上传成功

3.图片预览

文件上传成功后,返回了图片的网络地址,将地址拷贝到浏览器中访问,提示如下,访问不到

别着急,我们接着写入下面一行代码

//设置访问静态文件目录
app.use('/uploads', express.static('uploads'));

4.跨域设置

//跨越设置
app.use(cors());
app.all('*',function(req,res,next){
	res.header("Access-Control-Allow-Origin", "*");
	res.header("Access-Control-Allow-Headers", "X-Requested-With");
	res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
	next()
});

总结

以上就是nodejs下使用express+multer实现单图片上传的例子。

到此这篇关于nodejs+express+multer搭建文件上传文件预览功能的文章就介绍到这了,更多相关nodejs express multer文件上传内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • node.js中实现kindEditor图片上传功能的方法教程

    node.js中实现kindEditor图片上传功能的方法教程

    最近在做一个类似于论坛的系统,帖子需要进行图文并茂的显示,所以用到了富文本编辑器:kindeditor,下面这篇文章主要给大家介绍了在node.js中实现kindEditor图片上传功能的方法教程,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-04-04
  • node.js解决全局安装pnpm后无法使用的问题

    node.js解决全局安装pnpm后无法使用的问题

    在全局安装pnpm后,如果出现无法使用的问题,一般是由于没有添加系统变量导致的,本文就来介绍一下node.js解决全局安装pnpm后无法使用的问题,感兴趣的可以了解一下
    2024-10-10
  • 在node中如何调用python脚本

    在node中如何调用python脚本

    这篇文章主要介绍了在node中如何调用python脚本,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • nodejs操作mongodb的增删改查功能实例

    nodejs操作mongodb的增删改查功能实例

    这篇文章主要介绍了nodejs操作mongodb的增删改查功能,简单分析了mongodb模块的安装并结合实例形式分析了nodejs操作mongodb数据库进行增删改查的相关实现技巧,需要的朋友可以参考下
    2017-11-11
  • Node.js实现简单聊天服务器

    Node.js实现简单聊天服务器

    Node.js 是一个基于Chrome JavaScript运行时建立的一个平台, 用来方便地搭建快速的,易于扩展的网络应用,今天我们来探讨下,如何使用node.js实现简单的聊天服务器
    2014-06-06
  • nodejs文件操作模块FS(File System)常用函数简明总结

    nodejs文件操作模块FS(File System)常用函数简明总结

    这篇文章主要介绍了nodejs文件操作模块FS(File System)常用函数简明总结,对FS模块的大部份异步函数做了介绍,而且用中文注释,这下用起来方便了,需要的朋友可以参考下
    2014-06-06
  • Node.js利用console输出日志文件的方法示例

    Node.js利用console输出日志文件的方法示例

    本篇文章主要介绍了Node.js利用console输出日志文件的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • nvm安装使用及常用命令

    nvm安装使用及常用命令

    nvm主要是用来管理 nodejs 和 npm 版本的工具,可以用来切换不同版本的 nodejs,这篇文章主要介绍了nvm安装与使用,需要的朋友可以参考下
    2023-01-01
  • nodejs高版本降为低版本的详细解决方案

    nodejs高版本降为低版本的详细解决方案

    部分老旧项目需要使用低版本的node,网上很多是无效的,高版本无法直接安装低版本node,但是低版本nodejs可以安装部分高版本node,从而达到升级效果,下面这篇文章主要给大家介绍了关于nodejs高版本降为低版本的详细解决方案,需要的朋友可以参考下
    2022-12-12
  • node.js 中国天气预报 简单实现

    node.js 中国天气预报 简单实现

    本文主要介绍使用node.js做一个自用的天气插件,需要的朋友可以参考下。
    2016-06-06

最新评论