Skip to main content

React Upload

 






const express=require("express");
const app=express();
const multer=require('multer');
const path=require("path");
const {GridFsStorage}=require("multer-gridfs-storage");
const { request } = require("http");
const cors=require("cors")
app.use(cors())
// storage
const storage=new GridFsStorage({
    url:'mongodb+srv://user:user@cluster0.ayogb.mongodb.net/myFirstDatabase?retryWrites=true&w=majority',
    options:{useNewUrlParser: true, useUnifiedTopology: true },
    file:(request,file)=>{
        const match=['image/png','image/jpg','image/jpeg']
        if(match.indexOf(file.mimetype)==-1){
            return `${Date.now()}profile${file.orginalname}`;
        }
        else{
            return{
                bucketName:'photos',
                filename:`${Date.now()}profile${file.originalname}`,
            }
           
        }
    }
})

// storage
// const storage=multer.diskStorage({
//     destination:(req,file,cb)=>{
//         cb(null,"./uploads")
//     },
//     filename:(req,file,cb)=>{
//         const fileExt=path.extname(file.originalname);
//         const fileName=file.originalname.replace(fileExt,"")
//         .toLowerCase().split(" ").join("-")+"-"+Date.now()

//         cb(null,fileName+fileExt);
//     }
// })


// const upload=multer({
//     storage:storage,
//     limits:{
//         fileSize:1000000
//     },
//     fileFilter:(req,file,cb)=>{
//         if(file.mimetype==="image/jpeg" ||file.mimetype==="image/png" || file.mimetype==="image/jpg"){
//             cb(null,true)
//         }
//         else{
//             cb(null,false)
//         }
//     }
// });

const upload=multer({storage});

const uploadImage=(req,res)=>{
    console.log("helllloooo");
    try {
        if(!req.file)
        return res.status(404).json("File Not Found")
    console.log("done");
    console.log(req.file);
    const imageURL=`rifatewu/file/${req.file.originalname}`

    res.status(200).json(imageURL);    
    } catch (error) {
       
    }
   
}

app.post("/",upload.single("file"),uploadImage);
// app.post("/",upload.single("avatar"),(req,res)=>{
//     console.log(req.file);
//     res.send("Hello World!");
// })

app.listen(3500,()=>{
    console.log("Server is running at port "+3500);
})



App,js


import './App.css';
import {useEffect, useState} from 'react'
import axios from 'axios';
function App() {
  const [file, setFile] = useState("");
  useEffect(() => {
    const getImage=async()=>{
      if(file){
        const formData=new FormData();
        console.log("gelam");
        formData.append("name",file.name);
        formData.append("file",file)
        await axios.post("http://localhost:3500/",formData)
      }
     
     
    }
    getImage();
   
   
  }, [file]);
 

  const submitForm=async()=>{
   

  }
  return (
   
    <div className="App">
     
        <input onChange={(e)=>setFile(e.target.files[0])} type="file" name="avatar" id="" />
        <input onClick={submitForm} type="submit" value="Upload" />
     
    </div>
  );
}

export default App;




Comments

Popular posts from this blog

IELTS Spoken Class Adminssion Scenario - 01

.......  Student: Hello, May I come in, sir ? Optional (student): May I sit ? Sir:  Please have a seat. Sir: How may I help you, Sir ? Student: I would like to admit in your spoken course. Sir: Oh sure. Student: How many days are there in a week ? Sir: There are three classes in a week. Student: What time do you offer class ? Sir: We have class at 11am / 4pm / 6pm / 8pm

Php Learning Time

 Differences of explode( ) and implode( ) in php: explode: একটা স্ট্রিংকে কোনো একটা সেপারেটরের বেসিসে অ্যারেতে কনভার্ট করে, যেমন  <?php $text="Hello How are you?"; print_r(explode(" ",$text)); ?> This will give output of  Array (     [0] => Hello     [1] => How     [2] => are     [3] => you? ) Differences of array_splice( ) and array_slice( ) ধরেন আসল অ্যারে হচ্ছে    $arr =[ "Hello" , "this" , "is" , "test" , "text" ];    এখন এটাকে স্লাইসিং করার জন্য আমরা উপরের দুইটা মেথড ই ব্যবহার করতে পারি , কিন্তু array_splice এটা ইউজ করলে অরজিনাল array ও চেঞ্জ হয়ে যাবে, মানে যদি আমরা এভাবে লিখি  $var2 = array_splice ( $arr , 0 , 2 );   তাইলে $var2 এর ভিতরে থাকবে ["Hello" , "this"] ,  আর অরজিনাল array তে বাকি থাকবে ["is", "test", "text"] কিন্তু যদি আমরা ইউজ করি তাহলে অরজিনাল array আগের মতোই থাকবে পাশাপাশি $var2 এর মধ্যে ভ্যালু গুলা এসে পড়বে  Array (     [0] => ...