How to send a file from react to laravel without using append

summary: i want to send a file from react to laravel and then save it in share point

what I’ve already done: I’ve already managed this process in another app using “append” from react and it was working

problem: I don’t want to use append ( const formData = new FormData();
) because “datas” is a large object with lots of nested values. I have also tried to add ‘append’ but I get an empty object when requesting axios. Without using append, i don’t got my file data in laravel.

my question: is it possible to send a file client to server without using append ( const formData = new FormData();
)?

For the form I use react with redux toolkit.
To send the datas to mongodb i use laravel

I know that append method allows you to add key-value pairs to the formData object and allows you to receive and process the files in laravel but do I have another option ?

This is my submit and axios request

    const onSubmit = (data) => {
    const datas = data.internOrders;
    dispatch(postInternOrder(datas, userData));
  };


    
    export const postInternOrder = (datas, userData) => async (dispatch) => {
      dispatch(setLoading(true)); 
      try {
        await axios({
          method: 'post',
          url: `${process.env.REACT_APP_API_URL}api/order/intern`,
          data: datas,
        }).then((res) => {
          console.log(res.data);
          dispatch(setOpen(true)); 
        });
      } catch (err) {
        console.log(err);
        dispatch(setError(true));
      }
      dispatch(setLoading(false));
    };

This is my create function in laravel

public function createInternOrder(Request $request)
{


    if ($request) {
        $driveId = env('DRIVE_ID');
        $driveUrl = env('DRIVE_URL');
        $drivePath = env('DRIVE_PATH');
        $clientId = env('CLIENT_ID');
        $clientSecret = env('CLIENT_SECRET');
        $files = $request->file('files');

        // Obtenir le jeton d'accès
        if ($files) {
            $responseToken = Http::asForm()->post(
                'https://login.microsoftonline.com/8289/oauth2/v2.0/token',
                [
                    'grant_type' => "client_credentials",
                    'client_id' => $clientId,
                    'client_secret' => $clientSecret,
                    'scope' => "https://graph.microsoft.com/.default",
                ]
            );

            $tokenJson = json_decode($responseToken->getBody()->getContents());
            $token = $tokenJson->access_token;


            $fileName = $files->getClientOriginalName();
            $response = Http::withToken($token)->withBody(
                $files->getContent(),
                $files->getMimeType()
            )->put($driveUrl . $driveId . $drivePath . $fileName . ':/content');

            $responseJson = json_decode($response->getBody()->getContents());
            $sharePointUrl = $responseJson->webUrl;
        

        } else {
            $fileName = '';
            $sharePointUrl = '';
        }
        $internOrders = InternOrders::create([
            'History' => $request->get('history'),
            'Urls' => $request->get('urls'),
            'Amount' => $request->get('amount'),
            'BusinessUnit' => $request->get('businessUnit'),
            'Comment' => $request->get('comment'),
            'DeliveryAdress' => $request->get('deliveryAdress'),
            'Entity' => $request->get('entity'),
            'Express' => $request->get('express'),
            'ExpressObject' => $request->get('expressObject'),
            'Object' => $request->get('object'),
            'Paiement' => $request->get('paiement'),
            'Referent' => $request->get('referent'),
            'Status' => $request->get('status'),
            'Type' => $request->get('type'),
            'UserMail' => $request->get('userMail'),
            'UserName' => $request->get('userName'),
            "IdSP" => $request->get("idSP"),
            "SPUrl" => $request->get("sharePointUrl")

        ]);
        if ($internOrders) {
            $internOrders->save();

            return ["result" => " Orders has been saved successfully"];
        } else {
            return ["result" => "failed to save"];
        }
    }
}

Here trying to add append :

 const onSubmit = (data) => {    
 const datas = data.internOrders;

      const formData = new FormData();
      formData.append('internOrders', datas) 
      formData.append('file', data.files);  
    
      dispatch(postInternOrder(formData, userData));
    };

but then, if I log the “$request” in laravel i got empty object (FormData {})