欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

nodejs+express+multer搭建文件上傳文件預(yù)覽功能

 更新時(shí)間:2025年03月28日 10:01:11   作者:xs_2012  
Express 是一個(gè)簡(jiǎn)潔而靈活的 node.js Web應(yīng)用框架, 提供了一系列強(qiáng)大特性幫助你創(chuàng)建各種 Web 應(yīng)用,和豐富的 HTTP 工具,今天給大家分享nodejs+express+multer搭建文件上傳文件預(yù)覽功能,感興趣的朋友一起看看吧

前言

今天準(zhǔn)備用nodejs寫一個(gè)簡(jiǎn)單的圖片上傳接口,目的實(shí)現(xiàn)圖片上傳,上傳后的圖片可預(yù)覽。使用到的express,multer

一、express是什么?

Express 是一個(gè)簡(jiǎn)潔而靈活的 node.js Web應(yīng)用框架, 提供了一系列強(qiáng)大特性幫助你創(chuàng)建各種 Web 應(yīng)用,和豐富的 HTTP 工具。

二、multer是什么?

Multer 是一個(gè)node.js中間件,用于處理 multipart/form-data類型的表單數(shù)據(jù),主要用于上傳文件。

三、使用步驟

1.express使用

安裝express,新建一個(gè)js文件,我這里新建一個(gè)express_test.js的文件

var express = require('express');
var app = express();
app.get('/', function (req, res) {
	res.sendStatus(200)
})
//創(chuàng)建實(shí)例
var server = app.listen(8081, function () {
	var port = server.address().port
	console.log("應(yīng)用實(shí)例,訪問地址為 http://127.0.0.1:%s", port)
})

終端輸入命令 node .\express_test.js

瀏覽器打開顯示如下

2.multer使用

安裝multer之后,在express_test.js所在目錄下新建一個(gè)文件夾,名為uploads,接著輸入如下代碼

var fs = require('fs');//文件管理相關(guān)
var multer = require('multer');//nodejs中間件,用于處理上傳文件
// 創(chuàng)建 multer 實(shí)例并設(shè)置存儲(chǔ)引擎
const storage = multer.diskStorage({
	destination: function (req, file, cb) {
		// 指定文件上傳的目錄
		cb(null, 'uploads/');
	},
	filename: function (req, file, cb) {
		cb(null, file.originalname);
	}
});
/*設(shè)置過濾器,可以上傳哪類文件*/
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 });

以上代碼主要實(shí)現(xiàn)上傳目錄的配置,可上傳文件的類型。接著繼續(xù)輸入如下代碼

// 單個(gè)文件上傳
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:'上傳失敗,請(qǐng)上傳正確格式的圖片', data: null})
	}
});

再次運(yùn)行后,使用postman測(cè)試文件上傳,上傳成功

3.圖片預(yù)覽

文件上傳成功后,返回了圖片的網(wǎng)絡(luò)地址,將地址拷貝到瀏覽器中訪問,提示如下,訪問不到

別著急,我們接著寫入下面一行代碼

//設(shè)置訪問靜態(tài)文件目錄
app.use('/uploads', express.static('uploads'));

4.跨域設(shè)置

//跨越設(shè)置
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實(shí)現(xiàn)單圖片上傳的例子。

到此這篇關(guān)于nodejs+express+multer搭建文件上傳文件預(yù)覽功能的文章就介紹到這了,更多相關(guān)nodejs express multer文件上傳內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • express文件上傳中間件Multer詳解

    express文件上傳中間件Multer詳解

    multer是express官方推薦的文件上傳中間件,它是在busboy的基礎(chǔ)上開發(fā)的。目前multer的最新版本為:~1.1.0。本文將詳細(xì)介紹express文件上傳中間件Multer的安裝與使用等,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。
    2016-10-10
  • node.js處理前端提交的GET請(qǐng)求

    node.js處理前端提交的GET請(qǐng)求

    這篇文章主要為大家詳細(xì)介紹了node.js處理前端提交的GET請(qǐng)求,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • websocket實(shí)現(xiàn)Vue?3和Node.js之間的實(shí)時(shí)消息推送

    websocket實(shí)現(xiàn)Vue?3和Node.js之間的實(shí)時(shí)消息推送

    使用?WebSocket?實(shí)現(xiàn)實(shí)時(shí)消息推送是一種高效的方式,可以在客戶端和服務(wù)器之間建立長(zhǎng)連接,實(shí)現(xiàn)低延遲的雙向通信,以下是一個(gè)簡(jiǎn)單的示例,展示如何在前端使用?Vue?3?和后端使用?Node.js?搭建一個(gè)?WebSocket?實(shí)現(xiàn)實(shí)時(shí)消息推送的應(yīng)用
    2024-06-06
  • koa大型web項(xiàng)目中使用路由裝飾器的方法示例

    koa大型web項(xiàng)目中使用路由裝飾器的方法示例

    這篇文章主要介紹了koa大型web項(xiàng)目中使用路由裝飾器的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Node.js從字符串生成文件流的實(shí)現(xiàn)方法

    Node.js從字符串生成文件流的實(shí)現(xiàn)方法

    這篇文章主要介紹了Node.js從字符串生成文件流的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • docker中編譯nodejs并使用nginx啟動(dòng)

    docker中編譯nodejs并使用nginx啟動(dòng)

    這篇文章主要介紹了docker中編譯nodejs并使用nginx啟動(dòng)的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • node.js中的buffer.length方法使用說(shuō)明

    node.js中的buffer.length方法使用說(shuō)明

    這篇文章主要介紹了node.js中的buffer.length方法使用說(shuō)明,本文介紹了buffer.length的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • 詳解autojs的nodejs編寫UI技巧示例

    詳解autojs的nodejs編寫UI技巧示例

    這篇文章主要為大家介紹了autojs的nodejs編寫UI技巧示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • Koa 使用小技巧(小結(jié))

    Koa 使用小技巧(小結(jié))

    這篇文章主要介紹了Koa 使用小技巧(小結(jié)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2018-10-10
  • 深入理解Node.js中CORS的三個(gè)重要響應(yīng)頭

    深入理解Node.js中CORS的三個(gè)重要響應(yīng)頭

    CORS是一種安全機(jī)制,通過配置適當(dāng)?shù)捻憫?yīng)頭,服務(wù)器可以允許或限制外部域?qū)Y源的訪問,本文主要介紹了Node.js中CORS的三個(gè)重要響應(yīng)頭,感興趣的可以了解一下
    2024-12-12

最新評(píng)論