คุณสมบัติ files ของ file upload คืนค่า FileList object ที่มีไฟล์ทั้งหมดที่ผู้ใช้เลือก สำคัญที่สุดสำหรับการจัดการไฟล์ฝั่ง client
รูปแบบ (Syntax)
object.files
ตัวอย่างการใช้งาน
แสดงรายชื่อไฟล์ที่เลือกทั้งหมด:
<!DOCTYPE html>
<html>
<head>
<style>
body { text-align: center; background-color: #52B2CF; color: #fff; }
.btn { background-color: coral; border: none; height: 2rem; border-radius: 50px; width: 60%; margin: 1rem auto; display: block; color: #fff; outline: none; }
.show { font-size: 1.2rem; color: #fff; font-weight: bold; }
</style>
</head>
<body>
<h1>ตัวอย่าง FileUpload files Property</h1>
<p>เลือกไฟล์หลายไฟล์</p>
<input type="file" class="file-upload-btn" multiple>
<button onclick="showFiles()" class="btn">คลิกเพื่อดูไฟล์ที่เลือก</button>
<div class="show"></div>
<script>
function showFiles() {
var fileBtn = document.querySelector(".file-upload-btn");
var showMsg = document.querySelector(".show");
showMsg.innerHTML = '';
if (fileBtn.files.length === 0) {
showMsg.innerHTML = "กรุณาเลือกไฟล์อย่างน้อย 1 ไฟล์!!";
} else {
showMsg.innerHTML = "คุณเลือกไฟล์เหล่านี้:";
for (var i = 0; i < fileBtn.files.length; i++) {
showMsg.innerHTML += '' + fileBtn.files[i].name + '
';
}
}
}
</script>
</body>
</html>
FileList และ File Object
files คืนค่า FileList (คล้ายอาร์เรย์) แต่ละรายการคือ File object ที่มีคุณสมบัติ:
| คุณสมบัติ | คำอธิบาย |
|---|---|
| name | ชื่อไฟล์ |
| size | ขนาดไฟล์ (bytes) |
| type | MIME type (เช่น image/jpeg) |
| lastModified | เวลาที่ปรับเปลี่ยนล่าสุด (timestamp) |
การอ่านไฟล์ด้วย FileReader
var file = fileInput.files[0];
var reader = new FileReader();
reader.onload = function(e) {
var dataURL = e.target.result; // base64 data URL
// ใช้แสดงรูปภาพ preview หรืออัปโหลดผ่าน AJAX
};
reader.readAsDataURL(file);