-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathuserfile.js
More file actions
66 lines (63 loc) · 2.22 KB
/
userfile.js
File metadata and controls
66 lines (63 loc) · 2.22 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
const express = require('express');
const router = express.Router();
const authJWT = require('./middleware/authJWT');
const upload = require('./file');
var mysql = require('mysql2/promise');
var db = mysql.createPool({
host: process.env.mysql_host,
port: process.env.mysql_port,
user: process.env.mysql_user,
password: process.env.mysql_password,
database: process.env.mysql_database,
connectionLimit: 10,
connectTimeout: 10000
});
router.post('/img', authJWT, upload.single('file'), async(req, res, next)=>{
let conn = null;
try{
const str = req.file.originalname.split('.');
const query1 = `delete from PhotoFile where user_id = ${req.user_id}`;
const query2 = `insert into PhotoFile(user_id, file_type, file_name)
Values(${req.user_id}, ${"'" + str[1] + "'"}, ${"'" + str[0] + '_' + '.' + str[1] + "'"});`;
conn = await db.getConnection();
await conn.beginTransaction();
await conn.query(query1);
await conn.query(query2);
await conn.commit();
conn.release();
return res.status(200).send({
isSuccess: true,
statuscode: 200,
message: '파일 업로드 성공!',
});
}catch(err){
if(conn!=null){
await conn.rollback();
conn.release();
}
return res.status(400).send({
isSuccess: false,
statuscode:400,
message: '파일 업로드 실패!',
});
}
})
router.get('/img/:userid', authJWT, async(req, res, next)=>{
let conn = null;
try{
const query = `select file_name from PhotoFile where user_id = ${req.params.userid}`;
conn = await db.getConnection();
const [result] = await conn.query(query);
conn.release();
// const stream = await fs.createReadStream(`./uploads/${result[0].file_name}`);
res.setHeader('Content-Disposition', `attachment; filename=${result[0].file_name}`);
res.download(`./uploads/${result[0].file_name}`);
}catch(err){
return res.status(400).send({
isSuccess: false,
statuscode:400,
message: '파일 다운로드 실패!',
});
};
})
module.exports = router;