Hello friends, welcome back to my blog. Today in this blog post, I am going to tell you, How to upload, preview and save image inside folder in react js?
For reactjs new comers, please check the below link:
Friends here is the code snippet for How to upload, preview and save image inside folder in react js? and please use this code snippet carefully to avoid the mistakes:
1. Firstly friends we need fresh reactjs setup and for that we need to run below commands into our terminal and also w should have latest node version installed on our system:
npx create-react-app reactimageupload cd reactimageupload npm start // run the project
2. Now we need to run below commands to get bootstrap(for good layout), react image uploading(for image upload ) and axios(to post image request to php) modules into our react js app:
npm install bootstrap --save npm install --save react-images-uploading npm install axios --save npm start
3. Finally friends we need to add below code into our src/App.js file to get final output on web browser:
import React from 'react'; import './App.css'; //bootstrap import 'bootstrap/dist/css/bootstrap.min.css'; //For Image Save import axios from 'axios'; //For Image Upload import ImageUploading from "react-images-uploading"; class App extends React.Component { onChange = (imageList) => { // data for submit // Create an object of formData const formData = new FormData(); // Update the formData object formData.append( "myFile", imageList[0].file, imageList[0].file.name ); // Details of the uploaded file console.log(imageList[0].file); // Request made to the backend api // Send formData object to my php file for save in folder axios.post("http://localhost/reactimageupload.php", formData); }; render() { return ( <div className="maincontainer"> <h1 className="mr-5 ml-5 mt-5">TheRichPost</h1> <div className="container mb-5 mt-5"> <ImageUploading onChange={this.onChange} > {({ imageList, onImageUpload }) => ( // write your building UI <div className="imageuploader"> <div className="mainBtns"> <button className="btn btn-primary mr-1" onClick={onImageUpload}>Upload Image</button> </div> {imageList.map((image) => ( <div className="imagecontainer" key={image.key}> <img src={image.dataURL} /> </div> ))} </div> )} </ImageUploading> </div> </div> ) }; } export default App;
4. In the end friends we need to add below code into our src/App.css file to style the things:
.imagecontainer { float: left; width: 215px; height: auto; margin: 10px 0; } .imagecontainer img{width: 150px; margin:10px 0;} .imageuploader{width: 800px; height: 400px; background-color:#cbeefc;padding: 10px;}
5. For moving image inside folder, friends here is my php file reactimageupload.php code, which I have used in reactjs. I have put this file inside my xampp/htdocs folder and I have also made uploads folder into my xampp/htdocs folder:
Guys I have used php to move image inside the folder
<?php //Upload folder $target_dir = "uploads/"; $target_file = $target_dir . basename($_FILES["myFile"]["name"]); $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION)); // Check if image file is a actual image or fake image $check = getimagesize($_FILES["myFile"]["tmp_name"]); if($check !== false) { //Move File To Uploads Folder if (move_uploaded_file($_FILES["myFile"]["tmp_name"], $target_file)) { echo "The file ". basename( $_FILES["myFile"]["name"]). " has been uploaded."; } else { echo "Sorry, there was an error uploading your file."; } } else { echo "File is not an image."; } ?>
Now we are done friends. If you have any kind of query or suggestion or any requirement then feel free to comment below.
Guys in my next post, I will tell you, how to upload and save multiple images in react js in folder?
Note: Friends, I just tell the basic setup and things, you can change the code according to your requirements. For better understanding must watch video above.
I will appreciate that if you will tell your views for this post.Nothing matters if your views will good or bad.
Jassa
Thanks
but jo php file h usko react m kese add krenge
We just use API to get and post the data to php file.