<?php
include('../include/connect.php');
include('../function/function.php');
require_once __DIR__ . '/vendor/autoload.php';
$mpdf = new \Mpdf\Mpdf();

if (isset($_FILES['pdf_file']) && isset($_GET['filename'])) {
    $file = $_FILES['pdf_file'];
    $file_name = $file['name'];
    $save = $_GET['filename'];
    $file_tmp = $file['tmp_name'];
    $type = $_GET['Type'];
    $action = $_GET['Action'];
    $uploads_dir = '../data/profile/info/';//__DIR__ . '/uploads/';
    $Noifile = $_GET['Noifile'];

    if ($action == 'Check') { //themmoi
        if (file_exists($uploads_dir . '/' . $save . '.pdf')) {
            if ($Noifile == '0') {
                echo 'Hồ sơ ' . $save . ' đã tồn tại.';
            } else {
                $max_file_size = 30 * 1024 * 1024; // 30MB
                if ($file['size'] > $max_file_size) {
                    echo 'Dung lượng tệp vượt quá giới hạn cho phép (30MB).';
                } else {
                    // Kiểm tra kiểu MIME của tệp
                    //$finfo = finfo_open(FILEINFO_MIME_TYPE);
                    //$file_mime_type = finfo_file($finfo, $file_tmp);
                    //finfo_close($finfo);
                    $file_mime_type = mime_content_type($file_tmp);
                    $allowed_mime_types = ['application/pdf'];
                    $allowed_extensions = ['pdf'];

                    if (!in_array($file_mime_type, $allowed_mime_types) || !in_array(pathinfo($file_name, PATHINFO_EXTENSION), $allowed_extensions)) {
                        echo 'Chỉ cho phép tải lên các tệp PDF.';
                    } else {
                        echo 'ok';
                    }
                }
            }
        } else {
            $max_file_size = 30 * 1024 * 1024; // 30MB
            if ($file['size'] > $max_file_size) {
                echo 'Dung lượng tệp vượt quá giới hạn cho phép (30MB).';
            } else {
                // Kiểm tra kiểu MIME của tệp
                //$finfo = finfo_open(FILEINFO_MIME_TYPE);
                //$file_mime_type = finfo_file($finfo, $file_tmp);
                //finfo_close($finfo);
                $file_mime_type = mime_content_type($file_tmp);
                $allowed_mime_types = ['application/pdf'];
                $allowed_extensions = ['pdf'];

                if (!in_array($file_mime_type, $allowed_mime_types) || !in_array(pathinfo($file_name, PATHINFO_EXTENSION), $allowed_extensions)) {
                    echo 'Chỉ cho phép tải lên các tệp PDF.';
                } else {
                    echo 'ok';
                }
            }
        }
    } else if ($action == 'OK') { //themmoi
        if ($Noifile == '1' && file_exists($uploads_dir . '/' . $save . '.pdf')) {
            $max_file_size = 30 * 1024 * 1024; // 30MB
            if ($file['size'] > $max_file_size) {
                echo 'Dung lượng tệp vượt quá giới hạn cho phép (30MB).';
            } else {
                // Kiểm tra kiểu MIME của tệp
                //$finfo = finfo_open(FILEINFO_MIME_TYPE);
                //$file_mime_type = finfo_file($finfo, $file_tmp);
                //finfo_close($finfo);
                $file_mime_type = mime_content_type($file_tmp);
                $allowed_mime_types = ['application/pdf'];
                $allowed_extensions = ['pdf'];

                if (!in_array($file_mime_type, $allowed_mime_types) || !in_array(pathinfo($file_name, PATHINFO_EXTENSION), $allowed_extensions)) {
                    echo 'Chỉ cho phép tải lên các tệp PDF.';
                } else {
                    //move_uploaded_file($file_tmp, $uploads_dir . $save . ".pdf");
                    // Thêm trang từ file PDF thứ nhất
                    $pageCount = $mpdf->SetSourceFile('uploads/' . $save . '.pdf');
                    for ($i = 1; $i <= $pageCount; $i++) {
                        $tplId = $mpdf->ImportPage($i);
                        $mpdf->AddPage();
                        $mpdf->UseTemplate($tplId);
                    }

                    // Thêm trang từ file PDF thứ hai
                    $pageCount = $mpdf->SetSourceFile($file_tmp);
                    for ($i = 1; $i <= $pageCount; $i++) {
                        $tplId = $mpdf->ImportPage($i);
                        $mpdf->AddPage();
                        $mpdf->UseTemplate($tplId);
                    }

                    // Lưu tệp kết quả
                    unlink($uploads_dir . $save . '.pdf'); //xóa file cũ
                    $mpdf->Output($uploads_dir . $save . '.pdf', \Mpdf\Output\Destination::FILE); //tạo file mới
                    echo 'ok';
                }
            }
        } else {
            $max_file_size = 30 * 1024 * 1024; // 30MB
            if ($file['size'] > $max_file_size) {
                echo 'Dung lượng tệp vượt quá giới hạn cho phép (30MB).';
            } else {
                // Kiểm tra kiểu MIME của tệp
                //$finfo = finfo_open(FILEINFO_MIME_TYPE);
                //$file_mime_type = finfo_file($finfo, $file_tmp);
                //finfo_close($finfo);
                $file_mime_type = mime_content_type($file_tmp);
                $allowed_mime_types = ['application/pdf'];
                $allowed_extensions = ['pdf'];

                if (!in_array($file_mime_type, $allowed_mime_types) || !in_array(pathinfo($file_name, PATHINFO_EXTENSION), $allowed_extensions)) {
                    echo 'Chỉ cho phép tải lên các tệp PDF.';
                } else {
                    move_uploaded_file($file_tmp, $uploads_dir . $save . ".pdf");
                    echo 'ok';
                }
            }
        }
    }

    // Kiểm tra dung lượng tệp (giới hạn 30MB = 30 * 1024 * 1024 bytes)

} else if (isset($_FILES['avatar']) && isset($_GET['filename']) && $_GET['Action'] == 'Avatar') {
    $fileget = $_FILES['avatar'];
    $file_name = $fileget['name'];
    $save = $_GET['filename'];
    $file_tmp = $fileget['tmp_name'];
    $uploads_dir = '../data/profile/avatar/';//__DIR__ . '/avatar/''';
    $matchingFiles = glob("$uploads_dir/$save.*");
    $file_format = getFileFormat($file_name);

    $max_file_size = 30 * 1024 * 1024; // 30MB
    if ($fileget['size'] > $max_file_size) {
        header('Content-Type: application/json');
        echo json_encode('size');
        exit;
    } else {
        $file_mime_type = mime_content_type($file_tmp);
        $allowed_image_mime_types = array(
            'image/jpeg',
            'image/png',
            'image/gif',
            'image/tiff',
            'image/webp',
            'image/x-icon',
            'image/x-windows-bmp',
            'image/bmp',
            // Thêm các loại MIME hình ảnh khác nếu cần
        );
        if (!in_array($file_mime_type, $allowed_image_mime_types)) {
            header('Content-Type: application/json');
            echo json_encode('error');
            exit;
        } else {
            if ($matchingFiles !== false && count($matchingFiles) > 0) {
                foreach ($matchingFiles as $file) {
                    unlink($file);
                }
            }
            move_uploaded_file($file_tmp, $uploads_dir . $save . "." . $file_format);
            header('Content-Type: application/json');
            echo json_encode('ok');
            exit;
        }
    }
} else if (isset($_FILES['pdf_form']) && isset($_GET['filename']) && $_GET['Action'] == 'Form') {
    $fileget = $_FILES['pdf_form'];
    $file_name = $fileget['name'];
    $save = $_GET['filename'];
    $file_tmp = $fileget['tmp_name'];
    $uploads_dir = '../data/form/';//__DIR__ . '/form/''';
    $matchingFiles = glob("$uploads_dir/$save.*");
    $max_file_size = 30 * 1024 * 1024; // 30MB

    if ($fileget['size'] > $max_file_size) {
        header('Content-Type: application/json');
        echo json_encode("Dung lượng tệp vượt quá giới hạn cho phép (30MB).");
        exit;
    } else {
        // Kiểm tra kiểu MIME của tệp
        //$finfo = finfo_open(FILEINFO_MIME_TYPE);
        //$file_mime_type = finfo_file($finfo, $file_tmp);
        //finfo_close($finfo);
        $file_mime_type = mime_content_type($file_tmp);
        $allowed_mime_types = ['application/pdf'];
        $allowed_extensions = ['pdf'];

        if (!in_array($file_mime_type, $allowed_mime_types) || !in_array(pathinfo($file_name, PATHINFO_EXTENSION), $allowed_extensions)) {
            echo json_encode("Chỉ cho phép tải lên các tệp PDF.");
            exit;
        } else {
            move_uploaded_file($file_tmp, $uploads_dir . $save . ".pdf");
            echo json_encode("ok");
            exit;
        }
    }
} else if ($_SERVER['REQUEST_METHOD'] === 'POST' && empty($_POST) && empty($_FILES) && $_SERVER['CONTENT_LENGTH'] > 0) {
    echo 'Dung lượng tệp vượt quá (30MB).';
} else {
    header('location:../template/index.php?mod=error');   //redirect đến trang login.php
    exit();
}
