小編給大家分享一下Express系列之multer上傳的用法示例,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
你所需要的網站建設服務,我們均能行業(yè)靠前的水平為你提供.標準是產品質量的保證,主要從事成都網站制作、網站設計、外貿網站建設、企業(yè)網站建設、成都手機網站制作、網頁設計、成都品牌網站建設、網頁制作、做網站、建網站。創(chuàng)新互聯(lián)擁有實力堅強的技術研發(fā)團隊及素養(yǎng)的視覺設計專才。主要說一下multer,我并沒有實現(xiàn)所有的功能,只是實現(xiàn)單圖片上傳這一個功能,其他的再摸索嘍。
這是文件的整個目錄,主要就兩個,一個是根目錄下的main.js,還有一個是public/index.html。
放代碼:
//main.js let express = require('express'); var multer = require('multer') var storage = multer.diskStorage({ destination: function (req, file, cb) { cb(null, 'public/'); }, filename: function (req, file, cb) { cb(null, Date.now() + '.png'); } }) var upload = multer({ storage: storage }) //var upload = multer({ dest: 'public/' }) let app = express() app.use(express.static('public')) app.post('/public/index.html',upload.single('myfile'),(req,res,next)=>{ console.log(req.file) res.send(req.file) }) app.listen(3300,'127.0.0.1')
Document
不想引用jquery庫,我就原生寫的ajax,總的來說應該沒什么難的,總之就是點擊按鈕選擇完圖片之后,會將圖片的信息放在一個鍵名為myfile
的對象中,傳給后臺。
express把接受到的圖片存儲在/public/
文件下,這里有個小小的坑??梢钥吹轿以?code>main.js注釋了這樣一行代碼:
var upload = multer({ dest: 'public/' })
其實最開始的時候我用的就是這一行代碼,dest
的意思是選擇一個路徑去存儲文件,但是這樣寫有一個小小的問題,存入進來的文件是沒有后綴名的。
我在向前臺返回數(shù)據的時候
res.send(req.file)
這個問題就很嚴重,比如一個場景是我上傳一張圖片做頭像,但是等我下次進入自己的個人頁面,后臺給我返回的數(shù)據沒有辦法作為圖片的地址使用,這就很麻煩了。所以在網上找了一個原因,就把上面的代碼注釋換成了這個:
var storage = multer.diskStorage({ destination: function (req, file, cb) { cb(null, 'public/'); }, filename: function (req, file, cb) { cb(null, Date.now() + '.png'); } }) var upload = multer({ storage: storage })
destination
是文件存儲的地址,filename
設置的是文件的名字,那在這里如果寫成這種:
filename: function (req, file, cb) { cb(null, file.fieldname + '.png'); }
你會發(fā)現(xiàn)你傳入的每一張圖片的名字都是myfile.png
,新的覆蓋舊的。所以為了能保存?zhèn)魅氲乃袌D片,我就使用Date.now()作為每張圖片不同的識別符,這樣就不會再出現(xiàn)覆蓋的情況。
以上是“Express系列之multer上傳的用法示例”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)成都網站設計公司行業(yè)資訊頻道!
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。