Node.js实现本地客户端上传单个或者多个文件Excel文件(xls格式、xlsx格式文件)到服务器端,并且解析对应的Excel内容反馈到请求报文中
生活随笔
收集整理的這篇文章主要介紹了
Node.js实现本地客户端上传单个或者多个文件Excel文件(xls格式、xlsx格式文件)到服务器端,并且解析对应的Excel内容反馈到请求报文中
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?
?
注意,前情提示:
本代碼基于《Node.js(nodejs)對本地JSON文件進行增、刪、改、查操作(輕車熟路)》
傳送門Node.js(nodejs)對本地JSON文件進行增、刪、改、查操作(輕車熟路)_你摯愛的強哥?給你發(fā)來1條消息?-CSDN博客?
在/api/demo/文件夾下面創(chuàng)建uploadExcel.js
代碼內(nèi)容
const $g = global.SG.$g, fs = global.SG.fs, router = global.SG.router, xlsx = global.SG.xlsx, multer = global.SG.multer, path = global.SG.path;
module.exports = global.SG.router;
const folderPath = "./temp/upload";//存儲臨時上傳文件的路徑
const maxFiles = 999999999;//最多支持同時上傳文件數(shù)(留給客戶端自由限制)
const mkdirs = $g.dir.mkdirsByFolderPath;//遞歸創(chuàng)建文件夾目錄(基于文件夾路徑)const upload = multer({storage: multer.diskStorage({destination(req, file, cb) {mkdirs(folderPath, () => cb(null, path.join(__dirname, `../../${folderPath}`)));//文件存儲路徑},filename(req, file, cb) {cb(null, `${file.fieldname}-${$g.date.timestamp()}-${file.originalname}`);//定義隨機文件名}})
});//上傳單個Excel(all方法支持POST、GET、PUT、PATCH、DELETE傳參方式)
router.all("/demo/uploadExcel", upload.single("file"), (req, res) => {let filePath = req.file.path;fs.exists(filePath, exists => {if (exists) {let json = xlsx.parse(filePath);$g.json.res(req, res, "上傳成功", json, true);$g.dir.delayDestroyFile(filePath);//延時60秒銷毀服務(wù)器文件} else {$g.json.res(req, res, `文件路徑${filePath}不存在}`, req.file, false);}});
});
//上傳多個Excel(all方法支持POST、GET、PUT、PATCH、DELETE傳參方式)
router.all("/demo/uploadExcel/multi", upload.array("file", maxFiles), (req, res) => {let arr = req.files, json = [];for (let i = 0, len = arr.length; i < len; i++) {let filePath = arr[i].path;json.push(xlsx.parse(filePath));$g.dir.delayDestroyFile(filePath);//延時60秒銷毀服務(wù)器文件}$g.json.res(req, res, "上傳成功", json, true);
});
在index.js最后一行加入
app.use(API_PATH, require(`.${API_PATH}/demo/uploadExcel`));//上傳并解析Excel
運行
cnpm i node-xlsx & node index
總結(jié)
以上是生活随笔為你收集整理的Node.js实现本地客户端上传单个或者多个文件Excel文件(xls格式、xlsx格式文件)到服务器端,并且解析对应的Excel内容反馈到请求报文中的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Node.js实现服务器端生成Excel
- 下一篇: 【亲测可用】用Electron和elec