Tìm hiểu đối tượng FileReader là gì và cách sử dụng nó
CácFileReader
đối tượng đọc không đồng bộ nội dung của tệp.
Nó chỉ ra 4 phương pháp đọc mà chúng ta có thể sử dụng để bắt đầu quá trình đọc:
readAsText()
readAsDataURL()
readAsArrayBuffer()
readAsBinaryString()
và mộtabort()
phương pháp để tạm dừng bất kỳ thao tác đọc nào.
Việc đọc tệp là không đồng bộ và đối tượng hiển thị một số sự kiện mà chúng ta có thể kết nối để theo dõi tiến trình của hoạt động:
onload
được kích hoạt khi quá trình đọc kết thúc thành côngonloadstart
được kích hoạt khi bắt đầu đọconprogress
được kích hoạt khi quá trình đọc đang diễn raonloadend
được kích hoạt khi quá trình đọc kết thúc, thành công hoặc không thành côngonerror
được kích hoạt khi xảy ra lỗionabort
được kích hoạt khi quá trình đọc bị hủy bỏ
Sau khi hoàn tất thao tác đọc,result
thuộc tính của FileReader chứa nội dung tệp.
Cácerror
thuộc tính chứa thông báo lỗi, nếu xảy ra lỗi vàreadyState
chứa trạng thái của các hoạt động -0
nếu không có dữ liệu nào được tải,1
nếu quá trình tải dữ liệu đang diễn ra và2
nếu quá trình tải đã kết thúc.
readAsText()
Tải nội dung của mộtbãitrong một chuỗi văn bản.
Trong ví dụ này, chúng tôi sử dụng văn bản đó và đặt nó vào#content
HTML bên trong của phần tử:
//..file is available as a blob
const reader = new FileReader()
reader.onload = event => {
const text = reader.result
document.getElementById(‘content’).innerHTML = text
}
reader.onerror = (e) => {
console.error(e)
}
reader.readAsText(file)
Đây là một ví dụ đọc nội dung của một tệp văn bản khi nó được tải lên bằng cách sử dụnginput
và in nội dung của nó vào bảng điều khiển:
<input type="file" allow="text/*" />
const input = document.querySelector('input')
input.addEventListener(‘change’, e => {
const reader = new FileReader()
<span style="color:#a6e22e">reader</span>.<span style="color:#a6e22e">onload</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">event</span> => {
<span style="color:#66d9ef">const</span> <span style="color:#a6e22e">text</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">reader</span>.<span style="color:#a6e22e">result</span>
<span style="color:#a6e22e">console</span>.<span style="color:#a6e22e">log</span>(<span style="color:#a6e22e">text</span>)
}
<span style="color:#a6e22e">reader</span>.<span style="color:#a6e22e">onerror</span> <span style="color:#f92672">=</span> (<span style="color:#a6e22e">e</span>) => {
<span style="color:#a6e22e">console</span>.<span style="color:#a6e22e">error</span>(<span style="color:#a6e22e">e</span>)
}
<span style="color:#a6e22e">reader</span>.<span style="color:#a6e22e">readAsText</span>(<span style="color:#a6e22e">input</span>.<span style="color:#a6e22e">files</span>[<span style="color:#ae81ff">0</span>])
})
readAsDataURL()
Tải nội dung của một đốm màu vào mộtURL dữ liệu.
//..file is available as a blob
const reader = new FileReader()
reader.onload = event => {
const dataURL = event.target.result
document.getElementById(‘image’).src = dataURL
}
reader.readAsDataURL(file)
readAsArrayBuffer()
Tải nội dung của một blob vào mộtArrayBuffer
.
//..file is available as a blob
const reader = new FileReader()
reader.onload = event => {
const buffer = reader.result
const data = new Int32Array(buffer)
//…
}
reader.onerror = (e) => {
console.error(e)
}
reader.readAsArrayBuffer(file)
Tải xuống miễn phí của tôiSổ tay dành cho Người mới bắt đầu JavaScript
Các hướng dẫn khác về trình duyệt:
- Một số thủ thuật hữu ích có sẵn trong HTML5
- Cách tôi làm cho một trang web dựa trên CMS hoạt động ngoại tuyến
- Hướng dẫn hoàn chỉnh về ứng dụng web tiến bộ
- API tìm nạp
- Hướng dẫn API đẩy
- API nhắn tin kênh
- Hướng dẫn Nhân viên Dịch vụ
- Hướng dẫn API bộ nhớ cache
- Hướng dẫn API thông báo
- Đi sâu vào IndexedDB
- API Bộ chọn: querySelector và querySelectorAll
- Tải JavaScript hiệu quả với trì hoãn và không đồng bộ
- Mô hình đối tượng tài liệu (DOM)
- API lưu trữ web: lưu trữ cục bộ và lưu trữ phiên
- Tìm hiểu cách hoạt động của HTTP Cookies
- API lịch sử
- Định dạng hình ảnh WebP
- XMLHttpRequest (XHR)
- Hướng dẫn chuyên sâu về SVG
- URL dữ liệu là gì
- Lộ trình tìm hiểu Nền tảng Web
- CORS, Chia sẻ tài nguyên đa nguồn gốc
- Nhân viên web
- Hướng dẫn requestAnimationFrame ()
- Doctype là gì
- Làm việc với Bảng điều khiển DevTools và API Bảng điều khiển
- API tổng hợp giọng nói
- Cách chờ sự kiện DOM sẵn sàng bằng JavaScript thuần túy
- Cách thêm lớp vào phần tử DOM
- Cách lặp qua các phần tử DOM từ querySelectorAll
- Cách xóa một lớp khỏi phần tử DOM
- Cách kiểm tra xem một phần tử DOM có một lớp hay không
- Cách thay đổi giá trị nút DOM
- Cách thêm sự kiện nhấp chuột vào danh sách các phần tử DOM được trả về từ querySelectorAll
- WebRTC, API web thời gian thực
- Cách lấy vị trí cuộn của một phần tử trong JavaScript
- Cách thay thế một phần tử DOM
- Cách chỉ chấp nhận hình ảnh trong trường tệp đầu vào
- Tại sao sử dụng phiên bản xem trước của trình duyệt?
- Đối tượng Blob
- Đối tượng tệp
- Đối tượng FileReader
- Đối tượng FileList
- ArrayBuffer
- ArrayBufferView
- Đối tượng URL
- Mảng đã nhập
- Đối tượng DataView
- API BroadcastChannel
- API luồng
- Đối tượng FormData
- Đối tượng Điều hướng
- Cách sử dụng API vị trí địa lý
- Cách sử dụng getUserMedia ()
- Cách sử dụng API Kéo và Thả
- Cách làm việc với tính năng cuộn trên các Trang Web
- Xử lý các biểu mẫu trong JavaScript
- Sự kiện bàn phím
- Sự kiện chuột
- Chạm vào sự kiện
- Cách xóa tất cả phần tử con khỏi phần tử DOM
- Cách tạo thuộc tính HTML bằng vanilla Javascript
- Làm cách nào để kiểm tra xem một hộp kiểm đã được chọn bằng JavaScript hay chưa?
- Cách sao chép vào khay nhớ tạm bằng JavaScript
- Cách tắt một nút bằng JavaScript
- Cách làm cho một trang có thể chỉnh sửa trong trình duyệt
- Cách lấy giá trị chuỗi truy vấn trong JavaScript với URLSearchParams
- Cách xóa tất cả CSS khỏi một trang cùng một lúc
- Cách sử dụng insertAdjacentHTML
- Safari, cảnh báo trước khi thoát
- Cách thêm hình ảnh vào DOM bằng JavaScript
- Cách đặt lại biểu mẫu
- Cách sử dụng Google Fonts