Thứ Sáu, 2 tháng 1, 2026

upload ảnh không resize ảnh

 ** HTML

<div class="file-upload">

    <input type="file" name="userfile" id="userfile" hidden>

    <label for="userfile" class="btn-upload">Choose file</label>

    <span id="file-name">No file chosen ( max < 15MB )</span>

</div>

<style type="text/css">

    .file-upload {

        display: flex;

        align-items: center;

        gap: 10px;

    }

    .btn-upload {

        padding: 8px 14px;

        background: #007bff;

        color: #fff;

        cursor: pointer;

        border-radius: 4px;

    }

    .btn-upload:hover {

        background: #0056b3;

    }

</style>


<script>

document.getElementById('userfile').addEventListener('change', function () {

    document.getElementById('file-name').textContent =

        this.files.length ? this.files[0].name : 'No file chosen';

});

</script>



** Code PHP

$upload_path = INCLUDE_PATH . '/uploads/sendemail';

$images = upload_file_contact('userfile', $upload_path);


if ($images != '') {

    $body .= '<p style="padding-left:30px">

        <b>File Images:</b>             

        <a href="'.$site_live.'uploads/sendemail/'.$images.'" download="'.$images.'" target="_blank">Download File</a>

    </p>';

}


** Function xử lý ảnh

function upload_file_contact($input_name, $upload_dir)

{

    $max_size = 15 * 1024 * 1024; // 15MB


    // 1. Không có file

    if (

        !isset($_FILES[$input_name]) ||

        $_FILES[$input_name]['error'] != 0

    ) {

        return '';

    }


    $file_tmp  = $_FILES[$input_name]['tmp_name'];

    $file_name = $_FILES[$input_name]['name'];

    $file_size = $_FILES[$input_name]['size'];


    // 2. Tách tên & đuôi file

    $pathinfo  = pathinfo($file_name);

    $ext       = strtolower($pathinfo['extension']);

    $basename  = $pathinfo['filename'];


    // 3. Danh sách đuôi cho phép (PHP 5.3)

    $allow_ext = array(

        'svg','eps','ai','psd','cdr',

        'tiff','tif','raw','pdf',

        'jpg','jpeg','png','gif','bmp',

        'doc','docx','xls','xlsx'

    );


    if (!in_array($ext, $allow_ext)) {

        info_exit("❌ Định dạng file không được phép");

    }


    // 4. Kiểm tra dung lượng

    if ($file_size > $max_size) {

        info_exit("❌ File vượt quá 15MB");

    }


    // 5. Tạo thư mục nếu chưa có

    if (!is_dir($upload_dir)) {

        mkdir($upload_dir, 0755, true);

    }


    // 6. Tránh trùng tên file

    $new_name = $file_name;

    $i = 1;

    while (file_exists($upload_dir.'/'.$new_name)) {

        $new_name = $basename.'('.$i.').'.$ext;

        $i++;

    }


    // 7. Upload file

    if (!move_uploaded_file($file_tmp, $upload_dir.'/'.$new_name)) {

        info_exit("❌ Upload file thất bại");

    }


    return $new_name;

}


Không có nhận xét nào:

Đăng nhận xét