Showing
4 changed files
with
78 additions
and
4 deletions
This diff is collapsed. Click to expand it.
... | @@ -17,9 +17,11 @@ | ... | @@ -17,9 +17,11 @@ |
17 | "http-errors": "~1.6.3", | 17 | "http-errors": "~1.6.3", |
18 | "moment": "^2.26.0", | 18 | "moment": "^2.26.0", |
19 | "morgan": "~1.9.1", | 19 | "morgan": "~1.9.1", |
20 | + "multer": "^1.4.2", | ||
20 | "mysql": "^2.18.1", | 21 | "mysql": "^2.18.1", |
21 | "passport": "^0.4.1", | 22 | "passport": "^0.4.1", |
22 | "pug": "^3.0.0", | 23 | "pug": "^3.0.0", |
23 | - "request": "^2.88.2" | 24 | + "request": "^2.88.2", |
25 | + "xlsx": "^0.16.2" | ||
24 | } | 26 | } |
25 | } | 27 | } | ... | ... |
1 | var express = require('express'); | 1 | var express = require('express'); |
2 | var router = express.Router(); | 2 | var router = express.Router(); |
3 | +const XLSX = require('xlsx'); | ||
4 | +var multer = require('multer'); | ||
5 | +var fs = require('fs'); | ||
6 | +// var pool = require('./../routes/modules/database'); | ||
7 | + | ||
8 | +//파일 저장위치와 파일이름 설정 | ||
9 | +var storage = multer.diskStorage({ | ||
10 | + destination: function (req, file, cb) { | ||
11 | + cb(null, 'public/upload'); | ||
12 | + }, | ||
13 | + //파일이름 설정 | ||
14 | + filename: function (req, file, cb) { | ||
15 | + cb(null, file.originalname); | ||
16 | + } | ||
17 | +}) | ||
18 | + | ||
19 | +//파일 업로드 모듈 | ||
20 | +var upload = multer({ storage: storage }) | ||
3 | 21 | ||
4 | // 연락처 백업, 삭제, 검색 | 22 | // 연락처 백업, 삭제, 검색 |
5 | /* | 23 | /* |
... | @@ -7,8 +25,62 @@ contact_upload : 연락처 파일 업로드 모듈 | ... | @@ -7,8 +25,62 @@ contact_upload : 연락처 파일 업로드 모듈 |
7 | input : 사용자가 연락처를 저장해놓은 csv 혹은 xlsx 파일 | 25 | input : 사용자가 연락처를 저장해놓은 csv 혹은 xlsx 파일 |
8 | output : 연락처 저장 성공 여부 | 26 | output : 연락처 저장 성공 여부 |
9 | */ | 27 | */ |
10 | -router.get('/contact_upload', function(req, res, next) { | 28 | +router.post('/contact_upload', upload.single('file'), function(req, res, next) { |
11 | - console.log("login"); | 29 | + // console.log(req); |
30 | + var user_id = req.query.id; | ||
31 | + var file = req.file; | ||
32 | + var workbook = XLSX.readFile('public/upload/contact.xlsx'); | ||
33 | + var firstWSheetName = workbook.SheetNames[0]; | ||
34 | + var firstWSheet = workbook.Sheets[firstWSheetName]; | ||
35 | + var name = []; | ||
36 | + var phone = []; | ||
37 | + var email = []; | ||
38 | + var added_date = []; | ||
39 | + var length = firstWSheet['!ref'][4]; | ||
40 | + var temp =""; | ||
41 | + | ||
42 | + var sqlquery = "insert into contact(user_id,name,email,phone,added_date) values"; | ||
43 | + for(var i=1;i<length;i++) | ||
44 | + { | ||
45 | + for(var j=0;j<4;j++) | ||
46 | + { | ||
47 | + if(j==0){ | ||
48 | + temp = "A" + (i+1); | ||
49 | + name.push(firstWSheet[temp].v); | ||
50 | + sqlquery += ' ("' + user_id + '","'+name[i-1]; | ||
51 | + } | ||
52 | + else if(j==1){ | ||
53 | + temp = "B" + (i+1); | ||
54 | + phone.push(firstWSheet[temp].v); | ||
55 | + sqlquery += '","' + phone[i-1]; | ||
56 | + } | ||
57 | + else if(j==2){ | ||
58 | + temp = "C" + (i+1); | ||
59 | + email.push(firstWSheet[temp].v); | ||
60 | + sqlquery += '","' + email[i-1]; | ||
61 | + } | ||
62 | + else if(j==3){ | ||
63 | + temp = "D" + (i+1); | ||
64 | + added_date.push(firstWSheet[temp].v); | ||
65 | + sqlquery += '","' + added_date[i-1] + '"),'; | ||
66 | + } | ||
67 | + } | ||
68 | + } | ||
69 | + sqlquery = sqlquery.substring(0,sqlquery.length-1); | ||
70 | + connection.query(sqlquery, function (err, rows) { | ||
71 | + if (err) { | ||
72 | + console.log("upload contact failed"); | ||
73 | + throw err; | ||
74 | + } else { | ||
75 | + console.log(rows); | ||
76 | + var filename = 'public/upload/contact.xlsx'; | ||
77 | + fs.unlink(filename, function (err) { | ||
78 | + if (err) throw err; | ||
79 | + console.log('file deleted'); | ||
80 | + }) | ||
81 | + res.status(200).send('upload'); | ||
82 | + } | ||
83 | + }); | ||
12 | }); | 84 | }); |
13 | 85 | ||
14 | /* | 86 | /* | ... | ... |
... | @@ -7,4 +7,4 @@ connection = mysql.createConnection({ | ... | @@ -7,4 +7,4 @@ connection = mysql.createConnection({ |
7 | password: 'password1234', | 7 | password: 'password1234', |
8 | database: 'khuloud', | 8 | database: 'khuloud', |
9 | connectionLimit: 30 | 9 | connectionLimit: 30 |
10 | - }); | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
10 | + }); | ... | ... |
-
Please register or login to post a comment