Wednesday, November 28, 2018

Laravel multiple file upload validation for extensions xls, doc, csv, docx, xlsx etc

Laravel multiple file upload validation for extensions xls, doc, csv, docx, xlsx etc


I have tried many ways for validating xls and csv file uploaded using larvel from a multiple file upload field and all are not working in my case. Finally I created my own from the search results I found.


        $allowedExtensions = ['jpg','jpeg','png','bmp','pdf','doc','xls','xlsx','docx','csv'];

        if (Request::hasFile('image')) {
            $files = Request::file('image');
            foreach($files as $file){
                $extension = strtolower($file->getClientOriginalExtension());
                if(!in_array($extension, $allowedExtensions)) {
                    $errors = array('image' => ['Only jpeg, png, bmp, doc,docx, xls,xlsx, csv and pdf files are allowed']);
                    return new JsonResponse($errors, 422);
                }
            }
        }

I am using the following jquery for submitting the form and showing the errors.

$(document).ready(function(){  
    $('#sds_form').on("submit", function(e){  
        e.preventDefault(); //form will not submitted 
        var route_url = $("#sdsurl").val();
        $.ajax({  
            url: route_url,  
            method:"POST",  
            data:new FormData(this),
            dataType: "json",
            contentType: false,
            headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
            timeout: 100000,       // The content type used when sending data to the server.  
            cache:false,                // To unable request pages to be cached  
            processData:false,          // To send DOMDocument or non processed data file it is set to false  
            success: function(result){
                                
                //indicate successfull message
                $("#alter_notify").css('display', 'block');

            },
            error:function(error){
            var obj = $.parseJSON(error.responseText);
            var errors = '';
           
            for (var property1 in obj) {
             if(typeof(obj[property1][0])!="undefined"){
             errors = obj[property1][0];
             }
            }

            $("#image-error").fadeIn("slow").fadeOut(10000);
            $("#image-error").html(errors);
            $("#alter_submit").html('<i class="fa fa-send"></i> Submit');
            }
        })  
    });

});

Tuesday, July 10, 2018

Sample Recursive function in PHP using laravel eloquent

Sample Recursive function in PHP using laravel eloquent


function generateSecureOtp($length = 6)
    {
        $characters = '23456789abcdefghjkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ';
        $string = '';
        for ($i = 0; $i < $length; $i++) {
            $string .= $characters[mt_rand(0, strlen($characters) - 1)];
        }
        $exist = UserDetails::where('otp_value', $string)->first();
       
        if($exist) {
            return $this->generateSecureOtp(6);
        }else {
            return $string;
        }
    }