文件上传
//先引入multer
var multer = require('multer');
var upload = multer();
//从upload中获取文件
router.post('/rel', upload.fields([{name: 'inputFile', maxCount: 1}]),function(req,res,next){
var inputFiles = req.files; //未传时为undefined
...
//读取文件内容
var content = inputFiles['inputFile'][0].buffer.toString();
})
表单:
<form method="POST" action="/apps/rel" encType="multipart/form-data" name="form">
<input id="inputFile" type="file" accept="application/vnd.ms-excel|xls"
name="inputFile" onChange={this.handleFileChange}/>
<button onClick={this.handleSubmit}>点击提交</button>
</form>
文件下载
router.get('/export',(req,res,next)=>{
//查询数据库
...
let realPath = path.join(TMP_PATH, fileName);
let writeStream = fs.createWriteStream(realPath);
// 解决Excel打开时出现中文乱码
let bom = new Buffer('\xEF\xBB\xBF', 'binary');
writeStream.write(bom);
//写入数据内容
...
writeStream.end();
writeStream.on('finish', ()=> {
res.download(realPath, outName, (err)=> {
fs.unlink(realPath, (err2)=> {
if (err2) {
logger.error('删除文件失败,err=' + err);
}
});
if (err) {
logger.error(err);
res.status(404).end();
}
});
});
})