-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrouter.js
More file actions
67 lines (59 loc) · 1.89 KB
/
router.js
File metadata and controls
67 lines (59 loc) · 1.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
const express = require('express')
const router = express.Router()
const fs = require('fs')
const path = require('path')
const multer = require('multer')
const upload = multer({ dest: 'upload_tmp/' })
const officePath = 'upload/office/'
const pdfPath = 'upload/pdf/'
const officeToPdf = require('./translate.js')
// 发送页面
router.get('/', (req, res) => {
fs.readFile(path.join(__dirname, './public/index.html'), 'utf-8', (err, data) => {
if (err) return console.log(err)
res.send(data)
})
})
// 上传接口
router.post('/upload', upload.any(), (req, res) => {
let fileName = req.files[0].originalname.split('.')
let fileSuffix = fileName[(fileName.length - 1)]
let writeFilePath = officePath + new Date().getTime() + `.${fileSuffix}`
fs.readFile(req.files[0].path, (err, data) => {
fs.writeFile(writeFilePath, data, function(err) {
if (err) throw err
// 转换文件
officeToPdf(writeFilePath).then(data => {
fs.unlinkSync(req.files[0].path) // 删除缓存的文件
res.status(200).send({ code: 200, msg: '上传成功', data: data })
}).catch(err => {
res.status(500).send({ code: 500, msg: err })
})
})
})
})
// 读取文件夹
function handleReaddir(path) {
return new Promise((resolve, reject) => {
fs.readdir(path, (err, data) => {
if (err) reject(err)
resolve(data)
})
})
}
// 遍历获取文件
router.get('/filelist', (req, res) => {
handleReaddir(pdfPath).then(data => {
let dataList = {
code: 200,
data: []
}
data.forEach(item => {
dataList.data.push(`/${pdfPath}${item}`)
})
res.status(200).send(dataList)
}).catch(err => {
res.status(500).send({ code: 500, msg: err })
})
})
module.exports = router