具有特定扩展名的文件未附加

I'm creating a form where I've a place for attaching files. But, files with specific extensions like .xls, .sql etc., are not getting attached. But, other files like .docx, .pdf etc., are getting attached. This is how I tried:

function file_upload($control_id, $target_directory) {
        if(isset_file($control_id)) {       
            if(file_exists($target_directory) == false) {
                mkdir($target_directory, 0777, true); //to be create the directory recursively
            }

            $file_name = basename($_FILES[$control_id]["name"]); //to be get file name
            write_log($file_name);
            $file_extension = pathinfo($file_name, PATHINFO_EXTENSION); //to be get file extension
            write_log($file_extension);
            $file_size = $_FILES[$control_id]["size"]; //to be get file size in bytes
            write_log($file_size);

            $target_file_name = round(microtime(true) * 1000).".".$file_extension;  //to be get target file name
            $target_file_path = $target_directory.$target_file_name; //to be get target file

            if(file_exists($target_file_path) == true) {
                chmod($target_file_path, 0755); //Change the file permissions if allowed
                unlink($target_file_path); //remove the file
            }

            if (move_uploaded_file($_FILES[$control_id]["tmp_name"], $target_file_path) == true) {
                $arr = array(
                    "status" => true, 
                    "message" => "The file ".$file_name." has been uploaded.", 
                    "file_name" => $file_name, 
                    "file_extension" => $file_extension,
                    "file_size" => $file_size,
                    "uploaded_file_name" => $target_file_name,
                    "uploaded_file_path" => $target_file_path
                );
            } else {
                $arr = array(
                    "status" => false, 
                    "message" => "Sorry, there was an error uploading your file."
                );
            }
        } else {
            $arr = array(
                "status" => false, 
                "message" => "Please select file"
            );
        }

        //echo json_encode($arr);
        return $arr;
    }
$id = intval(mysqli_real_escape_string($mysqli, $_REQUEST["id"]));
        $upload_directory = "uploads/attachments/";
        $result = file_upload("contract_attachment", "../".$upload_directory);
        if($result[status] == true) {
            $query = "insert into `attachments` 
            (
                `id`, 
                `file_name`, 
                `file_extension`, 
                `file_size`, 
                `uploaded_file_name`, 
                `uploaded_file_path`
            ) 
            values 
            (
                'id', 
                '".addslashes($result['file_name'])."', 
                '".$result[file_extension]."', 
                '".$result[file_size]."', 
                '".$result[uploaded_file_name]."', 
                '".$upload_directory.$result[uploaded_file_name]."'
            )";
            mysqli_query($mysqli, $query) or throwexception(mysqli_error($mysqli));
        }
        echo json_encode(array("message" => "Record submitted successfully"));
        exit;

The problem is, when ever I try to attach a file with extension .xls or .sql, the $file_name, $file_extension, $file_size will get a value. For example, if the file I'm attaching is format.xls, it showed $file_name = format, $file_extension = .xls and $file_size = 0. Since the file size it's taking is zero, the condition "$result[status]" fails. So, the file is not getting attached. If I attach files like .pdf or .docx I get the correct values. For example, if I attach file like format.pdf, it showed $file_name = format, $file_extension = .pdf, $file_size = 9824. And the file is also getting attached.

But, I don't know what's wrong with this code, since files with extensions .xls and .sql are not getting attached. Can someone correct this and tell whats wrong with this?