Node.js + express實現上傳大文件的方法分析【圖片、文本文件】
本文實例講述了Node.js + express實現上傳大文件的方法。分享給大家供大家參考,具體如下:
對于大文件的上傳我們首先要引入一個叫做 multer 的庫:
npm install --save multer
關于這個庫,大家可以查閱官方文檔:
點擊跳轉 https://www.npmjs.com/package/multer
我們先將庫引入我們的項目中:
var multer = require('multer')
var upload = multer({ dest: 'uploads/' })// 文件會上傳到這個目錄
具體的 get 方法:
app.post('/upload', upload.single('logo'), function(req, res){//發(fā)送 json 數據到這個路由
console.dir(req.file);
res.send(req.p);
})
由于上傳文件要用到表當,所以我們這里先建立一個名為 form 表單:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<form action="/upload" method="post" enctype="multipart/form-data">
<h2>單圖上傳</h2>
<input type="file" name="logo">
<input type="submit" value="提交">
</form>
<body>
</body>
</html>
然后我們在 server 中引入該表單:
var fs = require('fs')
// /from 的 html 界面,用于演示上傳文件
app.get('/form',function(req, res){
var form = fs.readFileSync('./form.html',{ encoding : "utf8"});
res.send(form);
})
由 localhost:3000/form 運行后上傳文件,就能在你項目的upload目錄下可看到:


雖然上傳成功,但w我n看到文件名是混亂的,而且路徑也是固定:
修改路徑和文件名:
// 更改大文件的存儲路徑
var createFolder = function(folder){
try{
fs.accessSync(folder);
}catch( e ){
fs.mkdirSync(folder);
}
};
var uploadFolder = './upload/';// 設定存儲文件夾為當前目錄下的 /upload 文件夾
createFolder(uploadFolder);
// 磁盤存貯
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, uploadFolder );// 他會放在當前目錄下的 /upload 文件夾下(沒有該文件夾,就新建一個)
},
filename: function (req, file, cb) {// 在這里設定文件名
cb(null, file.originalname );
}
})
var upload = multer({ storage: storage })
效果:

最后,這里是視屏連接方便大家學習:
https://www.bilibili.com/video/av24385038/?p=6
希望本文所述對大家nodejs程序設計有所幫助。
相關文章
nodejs的http和https下載遠程資源post數據實例
這篇文章主要為大家介紹了nodejs的http和https下載遠程資源post數據實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09
教你用Node.js與Express建立一個GraphQL服務器
GraphQL是一種通過強類型查詢語言構建api的新方法,下面這篇文章主要給大家介紹了關于用Node.js與Express建立一個GraphQL服務器的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-12-12
node.js中的fs.writeFileSync方法使用說明
這篇文章主要介紹了node.js中的fs.writeFileSync方法使用說明,本文介紹了fs.writeFileSync的方法說明、語法、接收參數、使用實例和實現源碼,需要的朋友可以參考下2014-12-12
node.js中的buffer.toString方法使用說明
這篇文章主要介紹了node.js中的buffer.toString方法使用說明,本文介紹了buffer.toString的方法說明、語法、接收參數、使用實例和實現源碼,需要的朋友可以參考下2014-12-12
從零開始學習Node.js系列教程之SQLite3和MongoDB用法分析
這篇文章主要介紹了Node.js SQLite3和MongoDB用法,結合實例形式分析了SQLite3和MongoDB數據庫的初始化、連接、查詢等操作的實現技巧與相關注意事項,需要的朋友可以參考下2017-04-04
詳解node Async/Await 更好的異步編程解決方案
這篇文章主要介紹了詳解Async/Await 更好的異步編程解決方案,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05

