Skip to main content

How to upload multi file by base64 url in laravel?

Multi file upload by base64 url in laravel

Function


function uploadBase64File($base64_url){

    $response = array();

    $base64Data = $base64_url;

    $pattern = '/data:(.*);base64,([^"]*)/';

    // Perform the regular expression match

    preg_match($pattern, $base64Data, $matches);

    if (!empty($matches[1])) {

        $mime = $matches[1];

        // Remove the data:image/jpeg;base64, part from the string

        $mimeToExt = [

            'image/jpeg' => 'jpg',

            'image/png' => 'png',

            'image/gif' => 'gif',

            'image/bmp' => 'bmp',

            'image/webp' => 'webp',

            'application/pdf' => 'pdf',

            'application/msword' => 'doc',

            'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => 'docx',

            // Add more mappings as needed

        ];

        // Check if the MIME type exists in the mapping

        if (isset($mimeToExt[$mime])) {

            $extension = $mimeToExt[$mime];

        }

        

        $base64Data = str_replace('data:' . $matches[1] . ';base64,', '', $base64Data);

        // Decode the base64 data into binary format

        $fileData = base64_decode($base64Data);

        $urlParts = parse_url($base64Data);

        $queryString = $urlParts['query'];

        parse_str($queryString, $queryParameters);

        $original_filename = uniqid() . "-" . $queryParameters['filename'];

        if(empty($queryParameters['filename'])){

        // Generate a unique file name for the uploaded file

        $original_filename = uniqid() . "." . $extension;

        }

        $response["file_name"] = $original_filename; 

        $response["file_extension"] = $extension; 

        $response["file_data"] = $fileData; 

        return $response;

    }

}




=====================================================

Add base 64 url

$base64url = "";

$Base64File = uploadBase64File($base64url);

if(!empty($Base64File["file_name"])){

$original_filename = $Base64File["file_name"];

$file_extension = $Base64File["file_extension"];

$file_data = $Base64File["file_data"];

$storagePath = "service-requests/location-images" . "/" . $original_filename;

$filePath = Storage::disk('uploads')->put($storagePath, $file_data);

$ServiceRequestsDocs = ServiceRequestsDocs::create([

'file_extensions' => $file_extension,

'file_name' => $original_filename,

'file_path' => $storagePath,

]

);

}


Add below code in config\filesystem.php file

        'uploads' => [

            'driver' => 'local',

            'root' => public_path() .'/upload',

            'visibility' => 'public',

       ]


Add in Model file   
 public function getFilePathAttribute($file_path)

    {

        if(!empty($file_path))

        {

             return $filepath = URL::to('/') . '/upload/' . $file_path;

/*             return asset('/upoad/' . $file_path); */


        }

    }

Comments

Popular posts from this blog

How to use inner html value or data in php from javascript(innerHTML)?

 use inner html value or data in php from javascript(innerHTML)? <html> <body> <p id="demo">use inner html value in php(innerhtml)</p> <script>   var jassi = document.getElementById("demo").innerHTML;   //document.write(jassi); </script> <?php $jassi = '<script>document.write(jassi);</script>'; echo $jassi; ?> </body> </html>

How to get store data from WCFM(Best Multi Vendor Marketplace) Plugin?

 Get store data from WCFM(Best Multi Vendor Marketplace) Plugin. global $WCFM, $WCFMmp, $wp, $WCFM_Query, $post; $store_id = ''; if ( isset( $attr['id'] ) && !empty( $attr['id'] ) ) { $store_id = absint($attr['id']); } if (  wcfm_is_store_page() ) { $wcfm_store_url = get_option( 'wcfm_store_url', 'store' ); $store_name = apply_filters( 'wcfmmp_store_query_var', get_query_var( $wcfm_store_url ) ); $store_id  = 0; if ( !empty( $store_name ) ) { $store_user = get_user_by( 'slug', $store_name ); } $store_id    = $store_user->ID; } $user_id = $store_id;  $vendor_data = get_user_meta( $user_id, 'wcfmmp_profile_settings', true ); $street_1 = $vendor_data['address']['street_1']; $street_2 = $vendor_data['address']['street_2']; $city     = $vendor_data['address']['city']; $zip      = $vendor_data['address']['zip&#

How to create login with phone number in woocommerce wordpress?

Create login with phone number in woocommerce wordpress. function wooc_extra_register_fields() {?>        <p class="form-row form-row-wide">        <label for="reg_billing_phone"><?php _e( 'Phone', 'woocommerce' ); ?><span class="required">*</span></label>        <input type="text" class="input-text" name="billing_phone" id="reg_billing_phone" value="<?php esc_attr_e( $_POST['billing_phone'] ); ?>" />        </p>            <?php  }  add_action( 'woocommerce_register_form_start', 'wooc_extra_register_fields' );  function wooc_validate_extra_register_fields( $username, $email, $validation_errors ) { if ( isset( $_POST['billing_phone'] ) ) {    $hasPhoneNumber= get_users('meta_value='.$_POST['billing_phone']);    if ( !empty($hasPhoneNumber)) {      $validation_er