rashan88's avatar

how upload multiple files using ajax in laravel

how upload multiple files using ajax in laravel

this is my code ``

public function store(Request $request){

// return response()->json(['success'=>$request['property_type']]);

// request()->validate([ // // 'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048', // // ]);

    $catagory =$request['property_type'];

    $directories = Storage::directories('upload');

    foreach ($directories as $directry ){

        if( $directry == 'upload/'.$catagory){
            
            if($request->hasFile('images[]')){
                foreach ( $request->file('images[]') as $file){
                    $fileName = rand(1, 999).date('m-d-Y_hia').$file->getClientOriginalName();
                    $path = $file->storeAs('upload/'.$catagory, $fileName);
                    return response()->json(['success'=> $path] );

                }



            }

        }

    }

    Storage::makeDirectory('upload/'.$catagory);
    if($request->hasFile('images[]')){
        foreach ( $request->file('images[]') as $file){
            $fileName = rand(1, 999).date('m-d-Y_hia').$file->getClientOriginalName();
            $path = $file->storeAs('upload/'.$catagory, $fileName);
            return response()->json(['success'=> $file] );

        }
    }




    return response()->json(['success'=>$request["not"]] );


}

$("#add-property-button").click(function (e) {
     e.preventDefault();

    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('#_token').val()
        }
    });
            console.log( $('input[type=file]')[0].files);

    var formdata = new FormData();

    var files =$('input[type=file]')[0].files;
    console.log(files.length);

    for(var i=0;i<files.length;i++){
        formdata.append("images[]", files[i], files[i]['name']);

    }

     // formdata.append("images", $('input[type=file]')[0].files);
    formdata.append("property_type",$('#property_type').val());
    formdata.append("location",$("#txtlocation").val());
    formdata.append("rooms",$("#txtrooms").val());
    formdata.append("landsize",$("#txtlandsize").val());
    formdata.append("bathsize",$("#txtbathsize").val());
    formdata.append("housesize",$("#txthousesize").val());
    formdata.append("address",$("#txtaddress").val());
    formdata.append("description",$("#txtdescription").val());
    formdata.append("cost",$("#txtcost").val());
    formdata.append("is_negotiable",$("#is_negotiable").val());
    formdata.append("name",$("#txtname").val());
    formdata.append("phone",$("#txtphone").val());
    formdata.append("email",$("#txtemail").val());
    formdata.append("_token",$('#_token').val());
    console.log(formdata);

    jQuery.ajax({
        url: 'upload-property',
        method: 'POST',
        data: formdata,
        contentType: false,
        processData: false,
        beforeSend: function (xhr) {
            console.log('hello');

        },
        success: function (respond) {
            console.log(respond);
        },
        // Event complete
        complete: function (jqXHR, textStatus) {

        }
    });

});

``

0 likes
1 reply

Please or to participate in this conversation.