Skip to content

Commit 2dc2b69

Browse files
committed
Add Project files
1 parent effdfb7 commit 2dc2b69

File tree

2 files changed

+86
-0
lines changed

2 files changed

+86
-0
lines changed

app.js

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
'use strict'
2+
3+
const express = require('express')
4+
const multer = require('multer')
5+
const fileType = require('file-type')
6+
const fs = require('fs')
7+
const app = express()
8+
const router = express.Router()
9+
10+
const port = process.env.PORT || 8080;
11+
12+
const upload = multer({
13+
dest:'images/',
14+
limits: {fileSize: 10000000, files: 1},
15+
fileFilter: (req, file, callback) => {
16+
17+
if (!file.originalname.match(/\.(jpg|jpeg)$/)) {
18+
19+
return callback(new Error('Only Images are allowed !'), false)
20+
}
21+
22+
callback(null, true);
23+
}
24+
}).single('image')
25+
26+
router.post('/images/upload', (req, res) => {
27+
28+
upload(req, res, function (err) {
29+
30+
if (err) {
31+
32+
res.status(400).json({message: err.message})
33+
34+
} else {
35+
36+
let path = `/images/${req.file.filename}`
37+
res.status(200).json({message: 'Image Uploaded Successfully !', path: path})
38+
}
39+
})
40+
})
41+
42+
router.get('/images/:imagename', (req, res) => {
43+
44+
let imagename = req.params.imagename
45+
let imagepath = __dirname + "/images/" + imagename
46+
let image = fs.readFileSync(imagepath)
47+
let mime = fileType(image).mime
48+
49+
res.writeHead(200, {'Content-Type': mime })
50+
res.end(image, 'binary')
51+
})
52+
53+
54+
app.use('/', router)
55+
56+
app.use((err, req, res, next) => {
57+
58+
if (err.code == 'ENOENT') {
59+
60+
res.status(404).json({message: 'Image Not Found !'})
61+
62+
} else {
63+
64+
res.status(500).json({message:err.message})
65+
}
66+
})
67+
68+
69+
app.listen(port)
70+
console.log(`App Runs on ${port}`)

package.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"name": "node-image-upload",
3+
"version": "1.0.0",
4+
"description": "",
5+
"main": "app.js",
6+
"scripts": {
7+
"test": "echo \"Error: no test specified\" && exit 1"
8+
},
9+
"author": "Raj Amal",
10+
"license": "ISC",
11+
"dependencies": {
12+
"express": "^4.15.3",
13+
"file-type": "^5.2.0",
14+
"multer": "^1.3.0"
15+
}
16+
}

0 commit comments

Comments
 (0)