ajax上传excel文件 express处理数据保存导入数据(实用后台直接批量导入不用一个一个数据添加)
<input type="file" name="file" id="file"onchange="uploadFile(this)"/><body><script>var file = document.querySelector('file');var upload = document.querySelector('upload');var xhr = n
·
<input type="file" name="file" id="file" onchange="uploadFile(this)"/>
<body>
<script>
var file = document.querySelector('file');
var upload = document.querySelector('upload');
var xhr = new XMLHttpRequest();
// 点击上传
function uploadFile(event) {
var formData = new FormData();
formData.append('test-upload', event.files[0]);
xhr.onload = uploadSuccess;
xhr.open('post', '/fileUpload', true);
xhr.send(formData);
}
// 成功上传
function uploadSuccess(event) {
if (xhr.readyState === 4) {
console.log(xhr.responseText);
}
}
通宵了代码较乱先不格式化了,
var express = require('express'); //引入express
var app = express(); // 创建实例app
var fs = require("fs"); //引入fs,fs 是node中一个文件操作模块,包括文件创建,删除,查询,读取,写入。
var bodyParser = require('body-parser'); // 这个模块是获取post请求传过来的数据。
var multer = require('multer'); //multer - node.js 中间件,用于处理 enctype="multipart/form-data"(设置表单的MIME编码)的表单数据。
const path = require('path')
app.use(bodyParser.urlencoded({ extended: false })); // 判断请求体是不是json,不是的话把请求体转化为对象
app.use('/static', express.static('public'))// 静态资源地址
app.use(multer({ dest: './public/' }).any())// 通过配置multer的dest属性, 将文件储存在项目下的tmp文件中
//workbook 对象,指的是整份 Excel 文档。我们在使用 js-xlsx 读取 Excel 文档之后就会获得 workbook 对象。
let xlsxrd = require('node-xlsx');
var mysql = require('mysql');
var connection = mysql.createConnection({
host: '',
user: 'root',
password: '',
database: 'test'
});
connection.connect();
app.get('/index.html', function (req, res) {
res.sendFile(__dirname + "/index.tml");
})
app.post('/fileUpload', function (req, res) {// 上传接口
let old = req.files[0].path //获取path: 'public\\upload\\0f625978d5d1a783b12e149718f8b634',
let name = req.files[0].path + path.parse(req.files[0].originalname).ext
fs.renameSync(old, './public/' + req.files[0].originalname)
let excelFilePath = './public/' + req.files[0].originalname;
// 读取excel中所有工作表的数据
let list = xlsxrd.parse(excelFilePath);
// 获取excel中第一个工作表的数据
let data = list[0].data.splice(0, 1);
var dats = list[0].data
dats.forEach((item, index) => {
connection.query('insert into user (name,qq,age) values("' + item[0] + '","' + item[1] + '","' + item[2] + '")', function (error, results, fields) {
if (error) throw error;
console.log('The solution is: ', results[0]);
});
console.log(item);
})
connection.end();
fs.unlinkSync('./public/' + req.files[0].originalname);
res.json({//返回保存的图片名称
'imgpath': name
});
})
var server = app.listen(8081, function () {
})

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)