** 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