Làm cách nào để đọc tệp từ ổ đĩa cục bộ trong JavaScript?

Một phương pháp tốt hơn để mở tệp là dùng hàm fopen(). Chức năng này cung cấp cho bạn nhiều tùy chọn hơn so với chức năng readfile()

Chúng tôi sẽ sử dụng tệp văn bản, "webdictionary. txt", trong các bài học

AJAX = JavaScript và XML không đồng bộ
CSS = Biểu định kiểu xếp tầng
HTML = Ngôn ngữ đánh dấu siêu văn bản
PHP
SQL = Structured Query Language
SVG = Scalable Vector Graphics
XML = EXtensible Markup Language

Tham số đầu tiên của fopen() chứa tên của tệp sẽ được mở và tham số thứ hai chỉ định tệp sẽ được mở ở chế độ nào. Ví dụ sau cũng tạo thông báo nếu hàm fopen() không thể mở tệp đã chỉ định

Thí dụ

$myfile = fopen("từ điển web. txt", "r") or die("Không thể mở tệp. ");
echo fread($myfile,filesize("webdictionary. txt"));
fclose($myfile);
?>

Chạy ví dụ »

Mẹo. Hàm fread() và hàm fclose() sẽ được giải thích bên dưới

Tệp có thể được mở ở một trong các chế độ sau

ModesDescriptionrMở tệp chỉ đọc. Con trỏ tệp bắt đầu ở đầu tệpwMở tệp chỉ để ghi. Xóa nội dung của tệp hoặc tạo tệp mới nếu tệp không tồn tại. Con trỏ tệp bắt đầu ở đầu tệpaMở tệp chỉ để ghi. Dữ liệu hiện có trong tệp được giữ nguyên. Con trỏ tệp bắt đầu ở cuối tệp. Tạo một tệp mới nếu tệp không tồn tạixTạo một tệp mới chỉ để ghi. Trả về FALSE và lỗi nếu tệp đã tồn tại+Mở tệp để đọc/ghi. Con trỏ tệp bắt đầu ở đầu tệpw+Mở tệp để đọc/ghi. Xóa nội dung của tệp hoặc tạo tệp mới nếu tệp không tồn tại. Con trỏ tệp bắt đầu từ đầu tệp + Mở tệp để đọc/ghi. Dữ liệu hiện có trong tệp được giữ nguyên. Con trỏ tệp bắt đầu ở cuối tệp. Tạo tệp mới nếu tệp không tồn tạix+Tạo tệp mới để đọc/ghi. Trả về FALSE và lỗi nếu tệp đã tồn tại

PHP đọc tệp - fread()

Hàm fread() đọc từ một tệp đang mở

Tham số đầu tiên của fread() chứa tên của tệp để đọc và tham số thứ hai chỉ định số byte tối đa để đọc

Đoạn mã PHP sau đọc "webdictionary. txt" vào cuối

fread($myfile,filesize("webdictionary. txt"));


PHP Đóng tệp - fclose()

Hàm fclose() được sử dụng để đóng một tệp đang mở

Đó là một thực hành lập trình tốt để đóng tất cả các tệp sau khi bạn hoàn thành chúng. Bạn không muốn một tệp đang mở chạy lung tung trên máy chủ của mình chiếm dụng tài nguyên

fclose() yêu cầu tên của tệp (hoặc một biến chứa tên tệp) mà chúng tôi muốn đóng

$myfile = fopen("từ điển web. txt", "r");
// một số mã sẽ được thực thi.
fclose($myfile);
?>


PHP Đọc một dòng - fgets()

Hàm fopen()0 được sử dụng để đọc một dòng từ tệp

Ví dụ bên dưới xuất ra dòng đầu tiên của "webdictionary. txt" tập tin

Thí dụ

$myfile = fopen("từ điển web. txt", "r") or die("Không thể mở tệp. ");
echo fgets($myfile);
fclose($myfile);
?>

Chạy ví dụ »

Ghi chú. Sau khi gọi hàm fopen()0, con trỏ tệp đã chuyển đến dòng tiếp theo


Kiểm tra cuối tệp PHP - feof()

Hàm fopen()2 kiểm tra xem đã đạt đến "end-of-file" (EOF) chưa

Hàm fopen()2 rất hữu ích để lặp qua dữ liệu có độ dài không xác định

Ví dụ dưới đây đọc "webdictionary. txt" theo từng ký tự, cho đến khi đạt đến cuối tệp

Một trang web bao gồm nhiều tập tin. nội dung văn bản, mã, biểu định kiểu, nội dung phương tiện, v.v. Khi bạn đang xây dựng một trang web, bạn cần tập hợp các tệp này thành một cấu trúc hợp lý trên máy tính cục bộ của mình, đảm bảo rằng chúng có thể giao tiếp với nhau và hiển thị tất cả nội dung của bạn ngay trước khi bạn tải chúng lên máy chủ. Xử lý tệp thảo luận về một số vấn đề bạn nên biết để có thể thiết lập cấu trúc tệp hợp lý cho trang web của mình

Trang web của bạn nên sống ở đâu trên máy tính của bạn?

Khi bạn đang làm việc cục bộ trên một trang web trên máy tính của mình, bạn nên giữ tất cả các tệp liên quan trong một thư mục duy nhất phản ánh cấu trúc tệp của trang web đã xuất bản trên máy chủ. Thư mục này có thể nằm ở bất cứ đâu bạn thích, nhưng bạn nên đặt nó ở đâu đó mà bạn có thể dễ dàng tìm thấy, có thể trên Màn hình nền, trong thư mục Home hoặc thư mục gốc của ổ cứng.

  1. Chọn một nơi để lưu trữ các dự án trang web của bạn. Bên trong địa điểm bạn đã chọn, tạo một thư mục mới có tên là fopen()4 (hoặc tương tự). Đây là nơi tất cả các dự án trang web của bạn sẽ sống
  2. Trong thư mục đầu tiên này, hãy tạo một thư mục khác để lưu trữ trang web đầu tiên của bạn trong. Gọi nó là fopen()5 (hoặc một cái gì đó giàu trí tưởng tượng hơn)

Một bên về vỏ bọc và khoảng cách

Bạn sẽ nhận thấy rằng trong suốt bài viết này, chúng tôi yêu cầu bạn đặt tên cho các thư mục và tệp hoàn toàn bằng chữ thường không có khoảng trắng. Điều này là do

  1. Nhiều máy tính, đặc biệt là máy chủ web, phân biệt chữ hoa chữ thường. Vì vậy, ví dụ: nếu bạn đặt một hình ảnh trên trang web của mình tại fopen()6 và sau đó trong một tệp khác, bạn cố gọi hình ảnh đó là fopen()7, nó có thể không hoạt động
  2. Trình duyệt, máy chủ web và ngôn ngữ lập trình không xử lý không gian một cách nhất quán. Ví dụ: nếu bạn sử dụng khoảng trắng trong tên tệp của mình, một số hệ thống có thể coi tên tệp là hai tên tệp. Một số máy chủ sẽ thay thế các khu vực trong tên tệp của bạn bằng "%20" (mã ký tự cho khoảng trắng trong URL), dẫn đến tất cả các liên kết của bạn bị hỏng. Tốt hơn là tách các từ bằng dấu gạch nối, thay vì dấu gạch dưới. fopen()8 so với. fopen()9

Câu trả lời ngắn gọn là bạn nên sử dụng dấu gạch nối cho tên tệp của mình. Công cụ tìm kiếm của Google coi dấu gạch ngang là dấu tách từ nhưng không coi dấu gạch dưới theo cách đó. Vì những lý do này, tốt nhất bạn nên tập thói quen viết tên thư mục và tệp của mình bằng chữ thường, không có dấu cách và các từ được phân tách bằng dấu gạch nối, ít nhất là cho đến khi bạn biết mình đang làm gì. Bằng cách đó, bạn sẽ gặp ít vấn đề hơn sau này

Trang web của bạn nên có cấu trúc như thế nào?

Tiếp theo, hãy xem trang web thử nghiệm của chúng ta nên có cấu trúc như thế nào. Những thứ phổ biến nhất chúng tôi sẽ có trên bất kỳ dự án trang web nào chúng tôi tạo là tệp HTML chỉ mục và các thư mục để chứa hình ảnh, tệp kiểu và tệp tập lệnh. Hãy tạo những thứ này ngay bây giờ

  1. readfile()0. Tệp này thường sẽ chứa nội dung trang chủ của bạn, nghĩa là văn bản và hình ảnh mà mọi người nhìn thấy khi họ truy cập trang web của bạn lần đầu tiên. Sử dụng trình soạn thảo văn bản của bạn, tạo một tệp mới có tên là readfile()0 và lưu nó ngay bên trong thư mục fopen()5 của bạn
  2. Thư mục fopen()40. Thư mục này sẽ chứa tất cả các hình ảnh mà bạn sử dụng trên trang web của mình. Tạo một thư mục có tên là fopen()40, bên trong thư mục fopen()5 của bạn
  3. Thư mục fopen()43. Thư mục này sẽ chứa mã CSS được sử dụng để tạo kiểu cho nội dung của bạn (ví dụ: đặt văn bản và màu nền). Tạo một thư mục có tên là fopen()43, bên trong thư mục fopen()5 của bạn
  4. Thư mục fopen()46. Thư mục này sẽ chứa tất cả mã JavaScript được sử dụng để thêm chức năng tương tác vào trang web của bạn (e. g. các nút tải dữ liệu khi được nhấp). Tạo một thư mục có tên là fopen()46, bên trong thư mục fopen()5 của bạn

Ghi chú. Trên máy tính Windows, bạn có thể gặp khó khăn khi nhìn thấy tên tệp vì Windows có một tùy chọn có tên Ẩn tiện ích mở rộng cho các loại tệp đã biết được bật theo mặc định. Nói chung, bạn có thể tắt tính năng này bằng cách truy cập Windows Explorer, chọn tùy chọn Tùy chọn thư mục…, bỏ chọn hộp kiểm Ẩn tiện ích mở rộng cho các loại tệp đã biết, sau đó nhấp vào OK. Để biết thêm thông tin cụ thể về phiên bản Windows của bạn, bạn có thể tìm kiếm trên web

Đường dẫn tệp

Để làm cho các tệp giao tiếp với nhau, bạn phải cung cấp một đường dẫn tệp giữa chúng - về cơ bản là một tuyến đường, để một tệp biết vị trí của một tệp khác. Để chứng minh điều này, chúng tôi sẽ chèn một chút HTML vào tệp readfile()0 của chúng tôi và làm cho nó hiển thị hình ảnh bạn đã chọn trong bài viết "Trang web của bạn sẽ trông như thế nào?"

  1. Sao chép hình ảnh bạn đã chọn trước đó vào thư mục fopen()40 của bạn
  2. Mở tệp readfile()0 của bạn và chèn đoạn mã sau vào tệp chính xác như được hiển thị. Đừng lo lắng về ý nghĩa của nó lúc này — chúng ta sẽ xem xét các cấu trúc chi tiết hơn ở phần sau của loạt bài này

    <!DOCTYPE html>
    <html lang="en-US">
      <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width" />
        <title>My test page</title>
      </head>
      <body>
        <img src="" alt="My test image" />
      </body>
    </html>
    

  3. Dòng fopen()52 là mã HTML chèn hình ảnh vào trang. Chúng ta cần cho HTML biết hình ảnh ở đâu. Hình ảnh nằm trong thư mục hình ảnh, cùng thư mục với readfile()0. Để đi xuống cấu trúc tệp từ readfile()0 đến hình ảnh của chúng tôi, đường dẫn tệp chúng tôi cần là fopen()55. Ví dụ: hình ảnh của chúng tôi được gọi là fopen()56, vì vậy đường dẫn tệp là fopen()57
  4. Chèn đường dẫn tệp vào mã HTML của bạn giữa các dấu ngoặc kép của mã fopen()58
  5. Thay đổi nội dung của thuộc tính fopen()59 thành mô tả về hình ảnh mà bạn đang đưa vào. Trong trường hợp này, fopen()60
  6. Lưu tệp HTML của bạn, sau đó tải tệp đó trong trình duyệt web của bạn (bấm đúp vào tệp). Bạn sẽ thấy trang web mới hiển thị hình ảnh của mình

Làm cách nào để đọc tệp từ ổ đĩa cục bộ trong JavaScript?

Một số quy tắc chung cho đường dẫn tệp

  • Để liên kết đến một tệp đích trong cùng thư mục với tệp HTML đang gọi, chỉ cần sử dụng tên tệp, e. g. fopen()61
  • Để tham chiếu một tệp trong thư mục con, hãy viết tên thư mục ở phía trước đường dẫn, cộng với dấu gạch chéo về phía trước, e. g. fopen()62
  • Để liên kết đến một tệp đích trong thư mục phía trên tệp HTML đang gọi, hãy viết hai dấu chấm. Vì vậy, ví dụ: nếu readfile()0 nằm trong thư mục con của fopen()5 và fopen()61 nằm trong fopen()5, bạn có thể tham chiếu fopen()61 từ readfile()0 bằng cách sử dụng fopen()69
  • Bạn có thể kết hợp những thứ này bao nhiêu tùy thích, ví dụ như fopen()70

Hiện tại, đây là tất cả những gì bạn cần biết

Ghi chú. Hệ thống tệp Windows có xu hướng sử dụng dấu gạch chéo ngược, không phải dấu gạch chéo lên, e. g. fopen()71. Điều này không quan trọng trong HTML — ngay cả khi bạn đang phát triển trang web của mình trên Windows, bạn vẫn nên sử dụng dấu gạch chéo lên trong mã của mình

Làm cách nào để đọc tệp từ đường dẫn cục bộ trong JavaScript?

Có bốn phương thức sẵn có trong API FileReader để đọc các tệp 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

JavaScript có thể truy cập các tệp cục bộ không?

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 . Để chuẩn hóa quyền truy cập tệp từ trình duyệt, W3C đã xuất bản API tệp HTML5 vào năm 2014. Nó xác định cách truy cập và tải lên các tệp cục bộ bằng các đối tượng tệp trong các ứng dụng web.

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

Sử dụng fs. readFileSync() phương thức đọc tệp văn bản thành một mảng trong JavaScript , e. g. const nội dung = readFileSync(tên tệp, 'utf-8'). tách ('\ n'). Phương thức sẽ trả về nội dung của tệp, mà chúng ta có thể phân chia trên mỗi ký tự dòng mới để nhận được một chuỗi các chuỗi.

Làm cách nào để đọc dữ liệu từ một tệp trong JavaScript?

Để đọc tệp, sử dụng FileReader , cho phép bạn đọc nội dung của đối tượng Tệp vào bộ nhớ. Bạn có thể hướng dẫn FileReader đọc tệp dưới dạng bộ đệm mảng, URL dữ liệu hoặc văn bản. // Kiểm tra xem file có phải là ảnh không.