toror33

연락처 업로드

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 + });
......