Skip to content

Commit 03b6a79

Browse files
committed
remove file from folder when delete data from db
1 parent dde0a1c commit 03b6a79

File tree

4 files changed

+53
-54
lines changed

4 files changed

+53
-54
lines changed

models/detail.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
var mongoose = require('mongoose');
2-
var Schema = mongoose.Schema;
1+
let mongoose = require('mongoose');
2+
let Schema = mongoose.Schema;
33

44
detailSchema = new Schema( {
55
unique_id:Number,

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{
22
"scripts": {
3-
"start": "node server.js"
3+
"start": "nodemon server.js"
44
},
5-
"name": "",
6-
"version": "",
5+
"name": "File_Upload",
6+
"version": "1.0.0",
77
"dependencies": {
88
"ejs": "^3.0.1",
99
"express": "^4.17.1",

server.js

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,36 @@
1-
var express = require('express');
2-
var multer = require('multer'),
1+
let express = require('express');
2+
let multer = require('multer'),
33
bodyParser = require('body-parser'),
44
path = require('path');
5-
var mongoose = require('mongoose');
6-
var Detail = require('./models/detail');
7-
var fs = require('fs');
8-
var dir = './uploads';
9-
/*var upload = multer({ dest: 'uploads/' });*/
5+
let mongoose = require('mongoose');
6+
let Detail = require('./models/detail');
7+
let fs = require('fs');
8+
let dir = './uploads';
109
mongoose.connect('mongodb://localhost/uploadFiles');
1110

12-
13-
var upload = multer({
11+
let upload = multer({
1412
storage: multer.diskStorage({
1513

16-
destination: function (req, file, callback) {
14+
destination: (req, file, callback) => {
1715
if (!fs.existsSync(dir)) {
1816
fs.mkdirSync(dir);
1917
}
2018
callback(null, './uploads');
2119
},
22-
filename: function (req, file, callback) { callback(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname)); }
20+
filename: (req, file, callback) => { callback(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname)); }
2321

2422
}),
2523

26-
fileFilter: function (req, file, callback) {
27-
var ext = path.extname(file.originalname)
24+
fileFilter: (req, file, callback) => {
25+
let ext = path.extname(file.originalname)
2826
if (ext !== '.png' && ext !== '.jpg' && ext !== '.gif' && ext !== '.jpeg') {
2927
return callback(/*res.end('Only images are allowed')*/ null, false)
3028
}
3129
callback(null, true)
3230
}
3331
});
3432

35-
var app = new express();
33+
let app = new express();
3634
app.use(bodyParser.json());
3735
app.use(bodyParser.urlencoded({ extended: false }));
3836

@@ -54,25 +52,19 @@ app.get('/', (req, res) => {
5452

5553
app.post('/', upload.any(), (req, res) => {
5654

57-
// console.log("req.body"); //form fields
58-
// console.log(req.body);
59-
// console.log("req.file");
60-
// console.log(req.files); //form files
61-
6255
if (!req.body && !req.files) {
6356
res.json({ success: false });
6457
} else {
65-
var c;
58+
let c;
6659
Detail.findOne({}, (err, data) => {
67-
// console.log("into detail");
6860

6961
if (data) {
7062
c = data.unique_id + 1;
7163
} else {
7264
c = 1;
7365
}
7466

75-
var detail = new Detail({
67+
let detail = new Detail({
7668

7769
unique_id: c,
7870
Name: req.body.title,
@@ -97,11 +89,14 @@ app.post('/delete', (req, res) => {
9789

9890
Detail.findByIdAndRemove(req.body.prodId, (err, data) => {
9991

100-
console.log(data);
92+
// console.log(data);
93+
// remove file from upload folder which is deleted
94+
fs.unlinkSync(`./uploads/${data.image1}`);
95+
fs.unlinkSync(`./uploads/${data.image2}`);
10196

10297
})
10398
res.redirect('/');
10499
});
105100

106-
var port = 2000;
101+
let port = 2000;
107102
app.listen(port, () => { console.log('listening on port ' + port); });

views/index.ejs

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,69 @@
11
<!DOCTYPE html>
22
<html>
3+
34
<head>
45
<title>Upload Form</title>
56
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
67
<style type="text/css">
7-
img{
8-
width: 100px;
9-
height: 100px;
10-
}
11-
</style>
8+
img {
9+
width: 100px;
10+
height: 100px;
11+
}
12+
</style>
1213
</head>
14+
1315
<body>
1416
<div class="container">
1517
<div class="row">
1618
<h2>Add Data</h2>
1719

1820
<form method="post" enctype="multipart/form-data" action="/">
19-
<div class="form-group row" >
21+
<div class="form-group row">
2022
<div class="col-md-1" style="float: left;">
21-
<label for="title" class="col-sm-2 col-form-label" >Title</label>
23+
<label for="title" class="col-sm-2 col-form-label">Title</label>
2224
</div>
2325
<div class="col-sm-3" style="float: left;">
2426
<input type="text" name="title" placeholder="title" class="form-control" required>
2527
</div>
2628
</div>
27-
<div class="form-group row" >
29+
<div class="form-group row">
2830
<div class="col-lg-2" style="float: left;">
2931
<input type="file" name="upl" class="form-control-file" accept="image/*" required>
3032
</div>
3133
</div>
32-
<div class="form-group row" >
34+
<div class="form-group row">
3335
<div class="col-lg-2" style="float: left;">
3436
<input type="file" name="upl1" class="form-control-file" accept="image/*" required>
3537
</div>
3638
</div>
37-
<div class="form-group row" >
39+
<div class="form-group row">
3840
<div class="col-lg-2" style="float: left;">
3941
<input type="submit" class="btn btn-primary">
4042
</div>
4143
</div>
4244
</form>
4345
</div>
4446
<div class="row">
45-
<% for (var i = 0; i < data.length; i++) { %>
46-
<div class="col-md-4">
47-
<div class="thumbnail">
48-
<div class="caption">
49-
<h3><%= data[i].Name %></h3>
50-
<!-- <h3><%= data[i]._id %></h3> -->
51-
<img src="<%= data[i].image1 %>" class = "img-thumbnail">
52-
<img src="<%= data[i].image2 %>" class = "img-thumbnail">
53-
54-
<form method="post" action="/delete">
55-
<input id="prodId" name="prodId" type="hidden" value="<%= data[i]._id %>">
56-
<input type="submit" class = "btn btn-danger" name="Delete" value="Delete">
57-
</form>
47+
<% for (var i=0; i < data.length; i++) { %>
48+
<div class="col-md-4">
49+
<div class="thumbnail">
50+
<div class="caption">
51+
<h3>
52+
<%= data[i].Name %>
53+
</h3>
54+
<img src="<%= data[i].image1 %>" class="img-thumbnail">
55+
<img src="<%= data[i].image2 %>" class="img-thumbnail">
56+
</br>
57+
<form method="post" action="/delete">
58+
<input id="prodId" name="prodId" type="hidden" value="<%= data[i]._id %>">
59+
<input type="submit" class="btn btn-danger" name="Delete" value="Delete">
60+
</form>
61+
</div>
5862
</div>
5963
</div>
60-
</div>
61-
<% } %>
64+
<% } %>
6265
</div>
6366
</div>
6467
</body>
68+
6569
</html>

0 commit comments

Comments
 (0)