Hướng dẫn get bytes from file javascript - lấy byte từ tệp javascript
Đây là một bài viết dài, nhưng tôi đã mệt mỏi với tất cả những ví dụ không hoạt động cho tôi vì họ đã sử dụng các đối tượng hứa hẹn hoặc một 0 sai lầm có ý nghĩa khác khi bạn đang sử dụng ReactJS. Việc thực hiện của tôi là sử dụng một dropzone với ReactJS và tôi đã nhận được các byte bằng cách sử dụng một khung tương tự như những gì được đăng tại trang web sau đây, khi không có gì khác ở trên: https://www.mokuji.me/article/drop-upload- Hướng dẫn-1. Có 2 chìa khóa, đối với tôi: Show
Trong đó 2 là sự kiện. React yêu cầu 3, bạn có thể sử dụng 4 trong JavaScript đơn giản. Nhưng điều đó đã cho tôi chuỗi byte base64 được mã hóa.Vì vậy, tôi sẽ bao gồm các dòng áp dụng để tích hợp điều này như thể bạn đang sử dụng React, bởi vì đó là cách tôi xây dựng nó, nhưng hãy cố gắng khái quát điều này và thêm các bình luận khi cần thiết, để áp dụng cho một JavaScript Vanilla JavaScript Thực hiện - Hãy cẩn thận rằng tôi đã không sử dụng nó như thế trong một cấu trúc như vậy để kiểm tra nó. Đây sẽ là các ràng buộc của bạn ở đầu, trong hàm tạo của bạn, trong một khung React (không liên quan đến việc triển khai JavaScript vani):
Và bạn sẽ có 5 trong phần tử dropzone của mình. Nếu bạn đang làm điều này mà không phản ứng, đây là tương đương với việc thêm trình xử lý sự kiện Onclick bạn muốn chạy khi bạn nhấp vào nút "Tải lên tệp".
Sau đó, chức năng (các dòng áp dụng ... Tôi sẽ bỏ lại chỉ báo tiến trình tải lên của mình, v.v.):
Có câu hỏi về cú pháp đó, đối với Vanilla JS, về cách lấy đối tượng tệp đó: JavaScript/HTML5/JQuery Drag-and-Drep Tải lên-"Loại không thể nhận được: Không thể đọc thuộc tính 'Tệp' của không xác định" Lưu ý rằng Dropzone của React sẽ đặt đối tượng tệp vào 6 cho bạn, miễn là bạn thêm 7 vào 8 của bạn vào hàm tạo của bạn. Tôi đã thêm cú pháp từ một câu trả lời trên bài đăng đó về cách lấy đối tượng tệp của bạn. Nó nên hoạt động, hoặc có những bài viết khác ở đó có thể giúp đỡ. Nhưng tất cả những gì Q/A đã nói với tôi là làm thế nào để có được đối tượng 9, chứ không phải chính dữ liệu blob. Và ngay cả khi tôi đã làm 0 như trong câu trả lời của Sebu, điều này không bao gồm 4 với nó vì một số lý do, nó không cho tôi biết cách đọc nội dung của Blob và cách thực hiện mà không có đối tượng hứa hẹn. Vì vậy, đó là nơi người quay phim đến, mặc dù tôi thực sự đã thử và thấy tôi không thể sử dụng 2 của họ để có được.Bạn sẽ phải có các chức năng khác đi cùng với cấu trúc này - một để xử lý 3, một cho 4 (cả hai đều được hiển thị xa hơn bên dưới), và sau đó Trong dòng cuối cùng đó. Về cơ bản, bạn đang chuyển thẳng 7 của mình vào chức năng 5 đó, từ những gì tôi có thể nói.Vì vậy, phương thức 5 gọi hàm 0 của tôi (chỉ các dòng áp dụng, chỉ):
Và 1 nên có base64 byte.Chức năng bổ sung:
Và đánh dấu chỉ số tiến độ áp dụng: đánh dấu:
Và CSS:
EPILOGUE: Bên trong 0, vì một số lý do, tôi không thể thêm 1 vào một biến mà tôi đã khắc trong 4. Vì vậy, thay vào đó, tôi đặt nó trực tiếp thành biến, 5, có trong đối tượng JSON của tôi, 6 - đối tượng giống như 4 của tôi đang sử dụng. 5 là một mảng để tôi có thể đẩy nhiều tệp. Nó đã như thế này:
Sau đó, vì 4 đã chứa 6:
Tôi có thể tham khảo nó như 1 từ đó trở đi. Tính năng React không áp dụng trong vani JS. Bạn có thể xây dựng một cấu trúc tương tự trong JavaScript đơn giản với một biến toàn cầu và theo đó, theo đó, tuy nhiên, dễ dàng hơn nhiều:
Sau đó, bạn luôn chỉ tham khảo 2, liệt kê nó cho bất kỳ chuỗi byte nào, ví dụ: 3 cho tệp đầu tiên.
Làm thế nào để đọc các byte tệp trong JavaScript?Đây là cách nó hoạt động:.. tập tin. Cắt lát sẽ cắt một tệp thành byte và lưu vào một biến dưới dạng nhị phân. Bạn có thể cắt lát bằng cách cho byte bắt đầu và kết thúc byte .. người đọc. ReadAsbinaryString sẽ in byte đó dưới dạng tệp nhị phân. Không quan trọng tập tin lớn như thế nào .. Làm cách nào để chuyển đổi tệp thành byte?Ở đây, chúng tôi sẽ trải qua các cách khác nhau để chuyển đổi tệp thành mảng byte trong java ... Tạo một phiên bản của luồng đầu vào tệp với đường dẫn tệp .. Tạo một mảng byte có cùng độ dài với tệp .. Đọc nội dung tệp đó vào một mảng .. In mảng byte .. Làm cách nào để tải xuống một tệp byte?Để tải xuống tệp từ byte trong JavaScript, chúng ta có thể tạo một URL đối tượng từ một blob và sau đó tải xuống với URL.const base64ToArrayBuffer = (base64) => {const BinaryString = window.Atob (Base64);const BinaryLen = BinaryString.create an object URL from a blob and then download with the URL. const base64ToArrayBuffer = (base64) => { const binaryString = window. atob(base64); const binaryLen = binaryString.
Làm cách nào để chuyển đổi một tệp thành Blob trong TypeScript?Nếu bạn phải chuyển đổi một đối tượng tệp thành đối tượng Blob, bạn có thể tạo một đối tượng Blob mới bằng bộ đệm mảng của tệp.Xem ví dụ dưới đây.const file = file new (['xin chào', '', 'thế giới'], 'hello_world. txt', {type: 'text/plain'});// hoặc const file = tài liệu.create a new Blob object using the array buffer of the file. See the example below. const file = new File(['hello', ' ', 'world'], 'hello_world. txt', {type: 'text/plain'}); //or const file = document. |