Send multiple Files for frontend to backend with the help of multer
send.js(frontend)
import React, { useState } from 'react';import axios from 'axios';const Registration = () => {const [imgData, setImgData] = useState();const inputEvent = (e) => {const name = e.target.name;const value = e.target.files[0];// console.log(value)setImgData((preV) => {return {...preV,[name]: value}})}const btnClick = async (e) => {e.preventDefault()const { panCard, aadharCard } = imgData;const userData = new FormData();userData.append('panCard', panCard);userData.append('aadharCard', aadharCard);console.log(userData)const url = "/upload";// console.log(data)axios.post(url, userData).then((res) => {console.log(res)}).catch((err) => {console.log(err)})}return (<><div className="register container p-4 my-4 w-[40%] rounded-2xl border-2 shadow-sm"><form method='POST' className="row g-3"><div className="mb-3"><input className="form-control" type="file" onChange={inputEvent} name="panCard" id="formFile" /></div><div className="mb-3"><input className="form-control" type="file" onChange={inputEvent} name="aadharCard" id="formFile" /></div><div className="col-12 flex justify-center"><button onClick={btnClick} className="btn btn-primary px-4">SignUp</button></div></form></div></>)}export default Registration
registerSchema
register.js(backend)const mongoose = require('mongoose');const proprietorSchema = new mongoose.Schema({panCard : {data : Buffer,contentType: String},aadharCard : {data : Buffer,contentType: String},})const GstProprietor = mongoose.model('GST_Proprietor', proprietorSchema);module.exports = GstProprietor;
const GstProprietor = require('../../../../../model/serviceSchema/taxation/GST/Registration/gstProprietorSchema')const multer = require('multer')const path = require('path')const docStore = path.dirname('G:/legalapp-backend/controllers/client/clientServices/GST/docUpload/gstPropriator')const Storage = multer.diskStorage({destination: docStore,filename: ((req, file, cb) => {cb(null, file.originalname)})});// const upload = multer().single('panCard');const upload = multer({storage: Storage}).fields([{ name: 'panCard', maxCount: 1 },{ name: 'aadharCard', maxCount: 1 },])const uploadDoc = async (req, res) => {try {// console.log(req)upload(req, res, (err) => {console.log(req.files)if (err) {console.log(err)} else {const userField = new GstProprietor({panCard: {data: req.files.panCard[0].filename,contentType: "documents"},aadharCard: {data: req.files.aadharCard[0].filename,contentType: "documents"}});const userRegister = userField.save();if (userRegister) {return res.status(201).json("User Registered Successfully");} else {return res.status(500).json("failed to register")}}// res.json("Okay")})} catch (err) {console.log(err)}}module.exports = uploadDoc;
Post a Comment