Showing
4 changed files
with
77 additions
and
3 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 | /* | ... | ... |
-
Please register or login to post a comment