diff --git a/misc/api-spec.yaml b/misc/api-spec.yaml index bb8c152..c55dd5a 100644 --- a/misc/api-spec.yaml +++ b/misc/api-spec.yaml @@ -38,9 +38,9 @@ paths: type: string format: binary 400: - description: Bad Request + description: This is not a properly formatted base64 image 415: - description: This media type isn't supported + description: Please send an image that is .jpg, .jpeg, .jpe or .png 500: description: Unexpected error get: @@ -78,9 +78,9 @@ paths: type: string format: binary 400: - description: Bad Request + description: This is not a properly formatted base64 image 415: - description: This media type isn't supported + description: Please send an image that is .jpg, .jpeg, .jpe or .png 500: description: Unexpected error get: @@ -135,9 +135,9 @@ paths: type: string format: binary 400: - description: Bad Request + description: This is not a properly formatted base64 image 415: - description: This media type isn't supported + description: Please send an image that is .jpg, .jpeg, .jpe or .png 500: description: Unexpected error get: diff --git a/misc/examples/base64-img-example.txt b/misc/examples/base64-img-example.txt new file mode 100644 index 0000000..fe6b08e --- /dev/null +++ b/misc/examples/base64-img-example.txt @@ -0,0 +1 @@ +data:image/jpeg;base64,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QOm+Y6d+XCrfucI7obKp56Tt2jPMOzyK7tcbQGc36RvNNekTvkN6m+s2jhVjunokla75ZIua1uw5ba6wcl0+RbjulEvd+dwfP00vKjC8qMLyowvKjC8qMLyowvKjC8qMLyowvKjC8qMLyowvKjC8qMLyowvKjC8qMLyowvO/5+Pp0VRheVGF5UYXlRhelFF5UYXlRheVGF5UYXlRheVGF5UYXlRheVGF5UYXlRheVGF5UYXlRh9A7/mA/8QAMhAAAQQBAQcDAwMFAQEBAAAABAABAgMFFRAREhMUIDUGMDMhNDYxMlAiIyQlQBZBYP/aAAgBAQABBQL/API2WG35Tp8munya6fJrp8munya6fJrp8munya6fJrp8munya6fJrp8munya6fJrp8munya6fJrp8munya6fJrp8munya6fJrp8munya6fJrp8munya6fJrp8munya6fJrp8munya6fJrp8mh7Dacra7xqB1MoTp8munya6fJrp8munya6fJrp8munya6fJrp8munya6fJrp8munya6fJrp8munya6fJrp8munya6fJrp8munya6fJrp8munya6fJrp8munya6fJrp8munya6fJrp8munya6fJqqw2jKbBPO/wALb+QEfBgvD/whfndgnnf4W38gI+DBeH/hC/O7BPO/wtv5AR8GC8P/AAhfndgnnf4W38gI+DBeH/hC/O7BPO9h2XGEsbObnyRsABteVuWasZ/UVTTAybGXZDJsHc3qKp505aNgwZEShckfWBBX5kenI5E3ooP6iqjIHKsXfkMkwVv/AKKrmUZaNtAJMTBcmfDH05M6GPHyJ0ARQyayxijoDl22wpr16ub47IRNfst/ICPgwXh+6VkYqFkJ/wDaX53YJ53blyXEx3pwONAL2RZerfD0ZYFqarI21m/lmwT8tzniMPlAqcZ6kOGKpsk1cGFmXhcaR1QOW/ItlP5hmPFYPJhUYr1MeKUH6v8AFeqfDCy0jLZnzeV/2Gci0KoNOMu238gI+DBeH7X/AElbbUoSGMZx5RTkX0Ki6u+Hs2ZadhAJ8SpMbS53ul+d2Ced25yiROK9OlQJxfqPGiwBzv4xQAG9MIxhA38s2Cfluc8RhAhbMV6nGooo9UEPVjacflKhvS8pUPlvyLZT+YZjxWBDGsxHqoWigL1f4r1X4XKgtkMfSXIozIS6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IJAYCQdSI9z7f7778f5sIIILOCAIIINUIIIIIIIIIIKALEIIILzh3776x1000000000000xU000000000000000003X0MMMMMMMMMMMMMMMMMMCRLm9hxxhr9jDmYTg0Vd/wIIIIIIIIIIIIIIIIIINLn0FYXkLvLncNVtSVSt3wIIIIIIIIIIIIIIIIIIMJevOETSPuaFIbjY8QRtzwIIIIIIIIIIIIIIIIIIMRzRDKKFN8xrZNIJ8yRZ3wIIIIIIIIIIIIIIIIIINEWI+2P7Tm6kh1OKXiORXwIIIIIIIIIIIIIIIIIIMbDs4Z0DWbp7tH1j4FpvXwIIIIIIIosIccEIIIIIMZkeOMEeWHvyy76+WjG/zwIIIIMlcYZkrvUAIIIINZJmnwiFnX7zvb36ysPX7wIIISb6z7hThfqwsIIINDHjhge4xxz4PGv62Goh/wIJLs7z7uxX7h06IIIf8AFIRFBEq8++7QXh5J+0W/8CCzd+shpX288cviCCsqBlohXGl/++5CHP8A7wL8HPOt9Pvvvvu1nLIOggglihp8C5FPH/PvXnDNd6c8tPptMUfv8qhPIggkggglKhosYgdPn/PvvubTiBB3/LQ08gj3HPMfqwgggggkg1pKn9//AKj57nzKvBJTA5zwIIIILKLQAIIIIIIIIJAAVfa/f7FzbydacrUBq1zwIIIIY7gcuECAYQsggIMApoI3/wA5uflZGImNiFcf8CCCCCCCCCCCWaCnCxCDRw9M++3fsrARha4wqSM88CCCCCCCCCCCCCCCCCCDUg+++/Q88ws7v5K4zXtV5CCCCCCCCCCCCCCCCCCDVG++oNRzukmYYKpeE938s88888888888888888888888M88888888888888c/8QAKhEAAwACAQIFBAMBAQEAAAAAAAERITEQIEFRYXGhsTCR0fBAgcHhUPH/2gAIAQMBAT8QKKKKKKKKKKKKKKKKKKGmhKlFFFFFFFFFFFFFFFFFGjb+Hqb/AMPY2/h6m/8AD2NuG4ZeRvI6Rwzs0G2NvZGKjwG3keBWxcam/RS+PVBevY24apHJCNMaq4jhoZbI5OI4x4DTyeARoScam/RKRrR6CfRHIMl17G3DcE0yrZAnSBoil7lRSC9htLZBVxqb9TRsT7PoamhOITvQ3DbJtw/EbcGtGCGkFaaHkdqIKlzR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 \ No newline at end of file diff --git a/misc/examples/base64-server-example.js b/misc/examples/base64-server-example.js new file mode 100644 index 0000000..4cb0040 --- /dev/null +++ b/misc/examples/base64-server-example.js @@ -0,0 +1,47 @@ +/* + * @Author: Pankaj Kumar. + * @Date: 17 June 2019 + * @Source : https://jsonworld.com/ + * @Topic : base-64-image-upload + */ + +const express = require("express"); +const app = express(); +const port = 3000; +const bodyParser = require("body-parser"); +const fs = require("fs"); +const mime = require("mime"); + +// parse application/x-www-form-urlencoded +app.use(bodyParser.urlencoded({ extended: false })); + +// parse application/json +app.use(bodyParser.json()); + +const uploadImage = async (req, res, next) => { + // to declare some path to store your converted image + var matches = req.body.base64image.match(/^data:([A-Za-z-+/]+);base64,(.+)$/), + response = {}; + + if (matches.length !== 3) { + return new Error("Invalid input string"); + } + + response.type = matches[1]; + response.data = new Buffer(matches[2], "base64"); + let decodedImg = response; + let imageBuffer = decodedImg.data; + let type = decodedImg.type; + let extension = mime.extension(type); + let fileName = "image." + extension; + try { + fs.writeFileSync("./images/" + fileName, imageBuffer, "utf8"); + return res.send({ status: "success" }); + } catch (e) { + next(e); + } +}; + +app.post("/upload/image", uploadImage); + +app.listen(port, () => console.log(`Server is listening on port ${port}`)); diff --git a/nodejs/src/app.ts b/nodejs/src/app.ts index 63aae53..26586c2 100644 --- a/nodejs/src/app.ts +++ b/nodejs/src/app.ts @@ -5,7 +5,7 @@ const app = express(); //Initialize Request Data Type app.use(express.json()); -app.use(bodyParser.json()); +app.use(bodyParser.json({ limit: '50mb' })); //Intialize Routers import indexRouter from "./routes/index-routes"; diff --git a/nodejs/src/controllers/image-controller.ts b/nodejs/src/controllers/image-controller.ts index 5c831e8..ab2c77f 100644 --- a/nodejs/src/controllers/image-controller.ts +++ b/nodejs/src/controllers/image-controller.ts @@ -1,14 +1,10 @@ -import {Request, Response} from "express"; -import validateRequestIsImg from "../utils/validate-request-img"; - -const wrongContentErrorMsg = "Please send an image that is .jpg, .jpeg, .jpe or .png"; +import { Request, Response } from "express"; +import { prepareData } from "../utils/prepareData"; +import { decodeAndStoreImg } from "../utils/decodeAndStoreImg"; export function imageResize (req: Request, res: Response) { - const isValidRequestType = validateRequestIsImg(req); - - if(isValidRequestType) { - - } - - return res.status(400).send(wrongContentErrorMsg); + const matches = prepareData(req, res); + const isMatchesAnArray = Array.isArray(matches); + if(isMatchesAnArray) return decodeAndStoreImg(matches, res); + return matches; }; \ No newline at end of file diff --git a/nodejs/src/utils/decodeAndStoreImg.ts b/nodejs/src/utils/decodeAndStoreImg.ts new file mode 100644 index 0000000..87a180a --- /dev/null +++ b/nodejs/src/utils/decodeAndStoreImg.ts @@ -0,0 +1,22 @@ +import mime from "mime"; +import fs from "fs"; +import { Response } from "express"; + +export function decodeAndStoreImg(matches: RegExpMatchArray, res: Response) { + const response = { + type: matches[1], + data: Buffer.from(matches[2], "base64") + } + + let decodedImg = response; + let imageBuffer = decodedImg.data; + let type = decodedImg.type; + let extension = mime.extension(type); + let fileName = `image-${Date.now()}.${extension}`; + try { + fs.writeFileSync(`images/${fileName}`, imageBuffer, "utf8"); + return res.send({ status: "The image was successfully uploaded!" }); + } catch (error) { + throw (error); + } +} \ No newline at end of file diff --git a/nodejs/src/utils/errorMessages.ts b/nodejs/src/utils/errorMessages.ts new file mode 100644 index 0000000..2b084f6 --- /dev/null +++ b/nodejs/src/utils/errorMessages.ts @@ -0,0 +1,4 @@ +export const errorMessages = { + notAnJpegOrPng: "Please send an image that is .jpg, .jpeg, .jpe or .png", + notBase64Structured: 'This is not a properly formatted base64 image' +} \ No newline at end of file diff --git a/nodejs/src/utils/prepareData.ts b/nodejs/src/utils/prepareData.ts new file mode 100644 index 0000000..1ca589e --- /dev/null +++ b/nodejs/src/utils/prepareData.ts @@ -0,0 +1,18 @@ +import { Request, Response } from "express"; +import { errorMessages } from "../utils/errorMessages"; +import validateRequestIsBase64Format from "../utils/validate-base64-request"; +import validateRequestIsImg from "../utils/validate-request-is-img"; + +export function prepareData(req: Request,res: Response) { + const isThereABase64StringVariable = 'base64String' in req.body; + if(!isThereABase64StringVariable) return res.status(415).send(errorMessages.notBase64Structured); + + const { base64String } = req.body; + const foundMatches = validateRequestIsBase64Format(base64String); + if(!foundMatches) return res.status(400).send(errorMessages.notBase64Structured); + + const isCompatibleImage = validateRequestIsImg(foundMatches[1]); + if(!isCompatibleImage) return res.status(415).send(errorMessages.notAnJpegOrPng); + + return foundMatches; +} \ No newline at end of file diff --git a/nodejs/src/utils/validate-base64-request.ts b/nodejs/src/utils/validate-base64-request.ts new file mode 100644 index 0000000..fb9642c --- /dev/null +++ b/nodejs/src/utils/validate-base64-request.ts @@ -0,0 +1,17 @@ +export default function validateRequestIsBase64Format (base64String: string) { + if (base64String === '' || base64String.trim() === '') return false; + + const base64StructureRegex = (/^data:([A-Za-z-+/]+);base64,(.+)$/); + const isBase64StructuredString = base64StructureRegex.test(base64String); + + if(isBase64StructuredString) { + const foundMatches = base64String.match(base64StructureRegex); + if(foundMatches) { + const isNotFormattedCorrectly = foundMatches.length !== 3; + if(isNotFormattedCorrectly) return false; + return foundMatches; + } + } + + return false; +} \ No newline at end of file diff --git a/nodejs/src/utils/validate-request-img.ts b/nodejs/src/utils/validate-request-img.ts deleted file mode 100644 index fac220d..0000000 --- a/nodejs/src/utils/validate-request-img.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Request } from "express"; -import validImageTypes from "./valid-img-types"; - -export default function validateRequestIsImg (req: Request) { - for(const [key, value] of Object.entries(validImageTypes)) { - if(req.is(key)) return true; - } - - return false; -} \ No newline at end of file diff --git a/nodejs/src/utils/validate-request-is-img.ts b/nodejs/src/utils/validate-request-is-img.ts new file mode 100644 index 0000000..a2e29dd --- /dev/null +++ b/nodejs/src/utils/validate-request-is-img.ts @@ -0,0 +1,10 @@ +import validImageTypes from "./valid-img-types"; + +export default function validateRequestIsImg (dataType: string) { + for(const [key, value] of Object.entries(validImageTypes)) { + const isValidDataType = dataType === key; + if(isValidDataType) return true; + } + + return false; +} \ No newline at end of file