日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Node.js实现本地客户端上传单个或者多个文件Excel文件(xls格式、xlsx格式文件)到服务器端,并且解析对应的Excel内容反馈到请求报文中

發(fā)布時間:2023/11/27 生活经验 24 豆豆

?

?

注意,前情提示:
本代碼基于《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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。