Skip to content

Commit

Permalink
remove file from folder when delete data from db
Browse files Browse the repository at this point in the history
  • Loading branch information
foramsojitra committed Jul 4, 2021
1 parent dde0a1c commit 03b6a79
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 54 deletions.
4 changes: 2 additions & 2 deletions models/detail.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
let mongoose = require('mongoose');
let Schema = mongoose.Schema;

detailSchema = new Schema( {
unique_id:Number,
Expand Down
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"scripts": {
"start": "node server.js"
"start": "nodemon server.js"
},
"name": "",
"version": "",
"name": "File_Upload",
"version": "1.0.0",
"dependencies": {
"ejs": "^3.0.1",
"express": "^4.17.1",
Expand Down
43 changes: 19 additions & 24 deletions server.js
Original file line number Diff line number Diff line change
@@ -1,38 +1,36 @@
var express = require('express');
var multer = require('multer'),
let express = require('express');
let multer = require('multer'),
bodyParser = require('body-parser'),
path = require('path');
var mongoose = require('mongoose');
var Detail = require('./models/detail');
var fs = require('fs');
var dir = './uploads';
/*var upload = multer({ dest: 'uploads/' });*/
let mongoose = require('mongoose');
let Detail = require('./models/detail');
let fs = require('fs');
let dir = './uploads';
mongoose.connect('mongodb://localhost/uploadFiles');


var upload = multer({
let upload = multer({
storage: multer.diskStorage({

destination: function (req, file, callback) {
destination: (req, file, callback) => {
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir);
}
callback(null, './uploads');
},
filename: function (req, file, callback) { callback(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname)); }
filename: (req, file, callback) => { callback(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname)); }

}),

fileFilter: function (req, file, callback) {
var ext = path.extname(file.originalname)
fileFilter: (req, file, callback) => {
let ext = path.extname(file.originalname)
if (ext !== '.png' && ext !== '.jpg' && ext !== '.gif' && ext !== '.jpeg') {
return callback(/*res.end('Only images are allowed')*/ null, false)
}
callback(null, true)
}
});

var app = new express();
let app = new express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

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

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

// console.log("req.body"); //form fields
// console.log(req.body);
// console.log("req.file");
// console.log(req.files); //form files

if (!req.body && !req.files) {
res.json({ success: false });
} else {
var c;
let c;
Detail.findOne({}, (err, data) => {
// console.log("into detail");

if (data) {
c = data.unique_id + 1;
} else {
c = 1;
}

var detail = new Detail({
let detail = new Detail({

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

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

console.log(data);
// console.log(data);
// remove file from upload folder which is deleted
fs.unlinkSync(`./uploads/${data.image1}`);
fs.unlinkSync(`./uploads/${data.image2}`);

})
res.redirect('/');
});

var port = 2000;
let port = 2000;
app.listen(port, () => { console.log('listening on port ' + port); });
54 changes: 29 additions & 25 deletions views/index.ejs
Original file line number Diff line number Diff line change
@@ -1,65 +1,69 @@
<!DOCTYPE html>
<html>

<head>
<title>Upload Form</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<style type="text/css">
img{
width: 100px;
height: 100px;
}
</style>
img {
width: 100px;
height: 100px;
}
</style>
</head>

<body>
<div class="container">
<div class="row">
<h2>Add Data</h2>

<form method="post" enctype="multipart/form-data" action="/">
<div class="form-group row" >
<div class="form-group row">
<div class="col-md-1" style="float: left;">
<label for="title" class="col-sm-2 col-form-label" >Title</label>
<label for="title" class="col-sm-2 col-form-label">Title</label>
</div>
<div class="col-sm-3" style="float: left;">
<input type="text" name="title" placeholder="title" class="form-control" required>
</div>
</div>
<div class="form-group row" >
<div class="form-group row">
<div class="col-lg-2" style="float: left;">
<input type="file" name="upl" class="form-control-file" accept="image/*" required>
</div>
</div>
<div class="form-group row" >
<div class="form-group row">
<div class="col-lg-2" style="float: left;">
<input type="file" name="upl1" class="form-control-file" accept="image/*" required>
</div>
</div>
<div class="form-group row" >
<div class="form-group row">
<div class="col-lg-2" style="float: left;">
<input type="submit" class="btn btn-primary">
</div>
</div>
</form>
</div>
<div class="row">
<% for (var i = 0; i < data.length; i++) { %>
<div class="col-md-4">
<div class="thumbnail">
<div class="caption">
<h3><%= data[i].Name %></h3>
<!-- <h3><%= data[i]._id %></h3> -->
<img src="<%= data[i].image1 %>" class = "img-thumbnail">
<img src="<%= data[i].image2 %>" class = "img-thumbnail">
<form method="post" action="/delete">
<input id="prodId" name="prodId" type="hidden" value="<%= data[i]._id %>">
<input type="submit" class = "btn btn-danger" name="Delete" value="Delete">
</form>
<% for (var i=0; i < data.length; i++) { %>
<div class="col-md-4">
<div class="thumbnail">
<div class="caption">
<h3>
<%= data[i].Name %>
</h3>
<img src="<%= data[i].image1 %>" class="img-thumbnail">
<img src="<%= data[i].image2 %>" class="img-thumbnail">
</br>
<form method="post" action="/delete">
<input id="prodId" name="prodId" type="hidden" value="<%= data[i]._id %>">
<input type="submit" class="btn btn-danger" name="Delete" value="Delete">
</form>
</div>
</div>
</div>
</div>
<% } %>
<% } %>
</div>
</div>
</body>

</html>

0 comments on commit 03b6a79

Please sign in to comment.