Javascript có thể đọc và ghi các tệp cục bộ không?

Bài viết ngắn này cho thấy một cách đơn giản để sử dụng JS thuần túy để tương tác với các tệp cục bộ của người dùng mà không cần chuyển dữ liệu qua mạng. Phương pháp này có sẵn trong hầu hết các trình duyệt web crom như Google Chrome, MS Edge, v.v.

ví dụ 1. Đọc tệp và siêu dữ liệu của chúng

Ví dụ sau sử dụng đầu vào HTML đơn giản để đọc [các] tệp từ thiết bị người dùng và in ra siêu dữ liệu tệp trong bảng điều khiển trình duyệt

ví dụ 2. Đọc tệp văn bản dưới dạng chuỗi [hoặc JSON]

Ví dụ này bao gồm chức năng giải mã cơ sở 64 và sự kiện trình đọc để nghe khi tệp được đọc. Sau khi tệp được tải, kết quả văn bản được in ra dưới dạng Chuỗi tại HTML đích

Bạn có thể bao gồm chức năng phân tích cú pháp nếu tệp của bạn là JSON, XML, v.v.

Ví dụ trực tiếp trên JSFiddle

ví dụ 3. Đọc một tập tin hình ảnh

Ví dụ này cập nhật nguồn hình ảnh trên trang HTML thành tệp đã tải lên của người dùng

Bạn có thể bao gồm trình đọc siêu dữ liệu từ ví dụ 1 để kiểm tra xem tệp đã tải lên có phải là hình ảnh không

Ví dụ trực tiếp trên JSFiddle

Tôi hy vọng bạn thích bài viết này và thấy nó hữu ích cho công việc hoặc dự án hàng ngày của bạn

Tham gia Medium với liên kết giới thiệu của tôi - Joe T. Santhanavanich

Là thành viên Phương tiện, một phần phí thành viên của bạn sẽ được chuyển đến các tác giả mà bạn đã đọc và bạn có toàn quyền truy cập vào mọi câu chuyện…

trung bình. com

Thêm nội dung tại PlainEnglish. io. Đăng ký nhận bản tin hàng tuần miễn phí của chúng tôi. Theo dõi chúng tôi trên Twitter và LinkedIn. Tham gia cộng đồng của chúng tôi

Hướng dẫn này sẽ chỉ ra cách đọc tệp từ hệ thống tệp cục bộ bằng cách thực hiện các bước sau

  • Allowing the user to choose file from the device through file element.
  • Đọc siêu dữ liệu [tên, loại & kích thước] của tệp bằng các thuộc tính của đối tượng Tệp đã chọn.
  • Đọc nội dung của tệp bằng cách sử dụng đối tượng FileReader .

Bước 1 - Cho phép người dùng chọn tệp





Read File



Bước 2 — Đọc Siêu dữ liệu Tệp [Tên, Loại & Kích thước] bằng Thuộc tính của Đối tượng Tệp

Tệp do người dùng chọn có thể được truy cập dưới dạng đối tượng Tệp trong Javascript. Thuộc tính tên, loại & kích thước của đối tượng Tệp này cung cấp siêu dữ liệu của tệp đã chọn.

document.querySelector["#read-button"].addEventListener['click', function[] {
	if[document.querySelector["#file-input"].files.length == 0] {
		alert['Error : No file selected'];
		return;
	}

	// file selected by user
	let file = document.querySelector["#file-input"].files[0];

	// file name
	let file_name = file.name;

	// file MIME type
	let file_type = file.type;

	// file size in bytes
	let file_size = file.size;
}];

Bước 3 — Đọc nội dung tệp bằng cách sử dụng FileReader Object

Nội dung của đối tượng Tệp đã chọn được đọc bằng cách sử dụng Trình đọc tệp object. Reading is performed asynchronously, and both text and binary file formats can be read.

  • Có thể đọc các tệp văn bản [TXT, CSV, JSON, HTML, v.v.] bằng phương thức readAsText[] .
  • Có thể đọc các tệp nhị phân [EXE, PNG, MP4, v.v.] bằng phương thức readAsArrayBuffer[] .
  • Chuỗi url dữ liệu có thể được đọc bằng phương thức readAsDataURL[] .
document.querySelector["#read-button"].addEventListener['click', function[] {
	if[document.querySelector["#file-input"].files.length == 0] {
		alert['Error : No file selected'];
		return;
	}

	// file selected by user
	let file = document.querySelector["#file-input"].files[0];

	// new FileReader object
	let reader = new FileReader[];

	// event fired when file reading finished
	reader.addEventListener['load', function[e] {
	   // contents of the file
	    let text = e.target.result;

	    document.querySelector["#file-contents"].textContent = text;
	}];

	// event fired when file reading failed
	reader.addEventListener['error', function[] {
	    alert['Error : Failed to read file'];
	}];

	// read file as text file
	reader.readAsText[file];
}];

Các câu hỏi thường gặp khác về đọc tệp bằng Javascript

Làm cách nào để theo dõi tiến trình đọc của tệp?

Sự kiện tiến trình của đối tượng FileReader xử lý việc đọc .

// file read progress event
reader.addEventListener['progress', function[e] {
	if[e.lengthComputable == true] {
		// percentage of the file read
		let percent_read = Math.floor[[e.loaded/e.total]*100];
	    	console.log[percent_read + '% read'];
	}
}];

Làm thế nào để đọc một tập tin nhị phân?

Để lấy dữ liệu nhị phân của tệp, hãy sử dụng readAsBinaryString[] / readAsArrayBuffer method needs to be used.

Đọc Đọc một tệp và lấy dữ liệu nhị phân của nó trong Javascript để biết thêm chi tiết

Làm cách nào để đọc một tệp có trên máy chủ?

Có thể đọc tệp trên máy chủ bằng Javascript bằng cách tải xuống tệp bằng AJAX và phân tích cú pháp phản hồi của máy chủ

JavaScript có thể đọc tệp cục bộ không?

Có, JS có thể đọc tệp cục bộ [xem FileReader[]] nhưng không tự động. người dùng phải chuyển tệp hoặc danh sách tệp vào tập lệnh bằng html

JavaScript có thể tương tác với các tệp cục bộ không?

Do lo ngại về bảo mật, quyền truy cập vào tệp cục bộ từ trình duyệt bị hạn chế. Trình duyệt web [và JavaScript] chỉ có thể truy cập các tệp cục bộ khi có sự cho phép của người dùng .

JavaScript có thể đọc và ghi tệp không?

các phương thức writeFile[] được sử dụng để đọc và ghi tệp bằng javascript . Tệp được đọc bằng fs. readFile[], là một phương thức sẵn có. Kỹ thuật này đọc toàn bộ tập tin vào bộ nhớ và lưu trữ nó trong bộ đệm.

Làm cách nào để đọc tệp văn bản cục bộ trong JavaScript?

readAsText[] để đọc cục bộ. .
readAsArrayBuffer[]. Đọc nội dung của tệp đầu vào được chỉ định. .
readAsBinaryString[]. Đọc nội dung của tệp đầu vào được chỉ định. .
readAsDataURL[]. Đọc nội dung của tệp đầu vào được chỉ định

Chủ Đề