nodejs+express+multer搭建文件上傳文件預覽功能
前言
今天準備用nodejs寫一個簡單的圖片上傳接口,目的實現(xiàn)圖片上傳,上傳后的圖片可預覽。使用到的express,multer
一、express是什么?
Express 是一個簡潔而靈活的 node.js Web應用框架, 提供了一系列強大特性幫助你創(chuàng)建各種 Web 應用,和豐富的 HTTP 工具。
二、multer是什么?
Multer 是一個node.js中間件,用于處理 multipart/form-data類型的表單數(shù)據(jù),主要用于上傳文件。
三、使用步驟
1.express使用
安裝express,新建一個js文件,我這里新建一個express_test.js的文件
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.sendStatus(200)
})
//創(chuàng)建實例
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中間件,用于處理上傳文件
// 創(chuàng)建 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 });以上代碼主要實現(xiàn)上傳目錄的配置,可上傳文件的類型。接著繼續(xù)輸入如下代碼
// 單個文件上傳
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.圖片預覽
文件上傳成功后,返回了圖片的網(wǎng)絡地址,將地址拷貝到瀏覽器中訪問,提示如下,訪問不到

別著急,我們接著寫入下面一行代碼
//設置訪問靜態(tài)文件目錄
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()
});總結(jié)
以上就是nodejs下使用express+multer實現(xiàn)單圖片上傳的例子。
到此這篇關于nodejs+express+multer搭建文件上傳文件預覽功能的文章就介紹到這了,更多相關nodejs express multer文件上傳內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
node.js中實現(xiàn)kindEditor圖片上傳功能的方法教程
最近在做一個類似于論壇的系統(tǒng),帖子需要進行圖文并茂的顯示,所以用到了富文本編輯器:kindeditor,下面這篇文章主要給大家介紹了在node.js中實現(xiàn)kindEditor圖片上傳功能的方法教程,需要的朋友可以參考借鑒,下面來一起看看吧。2017-04-04
nodejs文件操作模塊FS(File System)常用函數(shù)簡明總結(jié)
這篇文章主要介紹了nodejs文件操作模塊FS(File System)常用函數(shù)簡明總結(jié),對FS模塊的大部份異步函數(shù)做了介紹,而且用中文注釋,這下用起來方便了,需要的朋友可以參考下2014-06-06

