I'm beginner I try to upload an image.jpg with React using Laravel , it work with Postman but with React js dose not work and throws a message error : FormToAddFile.jsx:17
POST http://127.0.0.1:8000/api/storefile 422 (Unprocessable Content) here is my codes :
React form :
import React from "react"; import { useRef } from "react" import axiosClient from "../../../axios-client"; export default function FormToAddFile(){ const fileValue=useRef(); const nameValue=useRef(); const descriptionValue=useRef(); const SaveFile=()=>{ const payload={ image:fileValue.current.value, name:nameValue.current.value, description:descriptionValue.current.value, } console.log("tosave",payload) axiosClient.post("/storefile",payload,{headers:{'Content-Type':"multipart/form-data"}},).then(({data})=>{ console.log(data) }).catch((err)=>{ console.log(err) }) } return ( <div className="w-fit mt-4"> <form action="" className="grid grid-cols-1 gap-4 overflow-x-hidden " > <input ref={nameValue} type="text" placeholder="File Name" className="py-2 pl-2 focus:outline-none text-black font-semibold"/> <textarea ref={descriptionValue} placeholder="Description" name="" id="" className="resize-none py-2 pl-2 focus:outline-none text-black font-semibold"></textarea> <label htmlFor="inputfile " className="bg-cyan-600"> <input ref={fileValue} id="inputfile" type="file" className="savefilelabel" /> </label> <button onClick={SaveFile} className="savefile">Save File</button> </form> </div> ) } my controller:
public function store(FilesStoreRequest $request) { try { $imageName = Str::random(32).".".$request->image->getClientOriginalExtension(); // Create Product File::create([ 'name' => $request->name, 'image' => $imageName, 'description' => $request->description ]); // Save Image in Storage folder Storage::disk('public')->put($imageName, file_get_contents($request->image)); // Return Json Response return response()->json([ 'message' => "Product successfully created." ],200); } catch (\Exception $e) { // Return Json Response return response()->json([ 'message' => "Something went really wrong!" ],500); } } **it's working with Postman but not with my React form **