Mảng byte thành blob javascript
Trong trình duyệt, có thêm các đối tượng cấp cao hơn, được mô tả trong API tệp, cụ thể là 4 Show
4 bao gồm một chuỗi tùy chọn 6 (thường là kiểu MIME), cộng với 7 – một chuỗi gồm các đối tượng, chuỗi và 9 khác của 4Cú pháp hàm tạo là
Ví dụ
0Chúng tôi có thể trích xuất các lát cắt 4 với 7
Các đối số tương tự như 79, số âm cũng được phép
Chúng ta không thể thay đổi dữ liệu trực tiếp trong một 4, nhưng chúng ta có thể cắt các phần của một 4, tạo các đối tượng 4 mới từ chúng, trộn chúng vào một 4 mới, v.v.Hành vi này tương tự như chuỗi JavaScript. chúng ta không thể thay đổi một ký tự trong một chuỗi, nhưng chúng ta có thể tạo một chuỗi mới đã sửa Blob dưới dạng URLCó thể dễ dàng sử dụng Blob làm URL cho 55, 56 hoặc các thẻ khác để hiển thị nội dung của nóNhờ có 6, chúng tôi cũng có thể tải xuống/tải lên các đối tượng 4 và 6 tự nhiên trở thành 00 trong các yêu cầu mạngHãy bắt đầu với một ví dụ đơn giản. Bằng cách nhấp vào liên kết, bạn tải xuống 4 được tạo động với nội dung 02 dưới dạng tệp 5Chúng tôi cũng có thể tạo một liên kết động bằng JavaScript và mô phỏng một lần nhấp bằng 03, sau đó quá trình tải xuống sẽ tự động bắt đầuĐây là mã tương tự khiến người dùng tải xuống 4 được tạo động, không có bất kỳ HTML nào 0 05 lấy một 4 và tạo một URL duy nhất cho nó, ở dạng 07Đó là giá trị của 08 trông như thế nào 1Đối với mỗi URL được tạo bởi 05, trình duyệt lưu trữ bản đồ URL → 4 bên trong. Vì vậy, các URL như vậy ngắn, nhưng cho phép truy cập vào 4Một URL được tạo (và do đó liên kết với nó) chỉ hợp lệ trong tài liệu hiện tại, khi nó đang mở. Và nó cho phép tham chiếu đến 4 trong 56, 55, về cơ bản là bất kỳ đối tượng nào khác mong đợi một URLCó một tác dụng phụ mặc dù. Trong khi có một ánh xạ cho một 4, thì bản thân 4 nằm trong bộ nhớ. Trình duyệt không thể giải phóng nóÁnh xạ sẽ tự động bị xóa khi tải xuống tài liệu, vì vậy các đối tượng 4 được giải phóng sau đó. Nhưng nếu một ứng dụng tồn tại lâu dài, thì điều đó sẽ không sớm xảy raVì vậy, nếu chúng tôi tạo một URL, thì 4 đó sẽ bị treo trong bộ nhớ, ngay cả khi không cần thiết nữa 19 xóa tham chiếu khỏi ánh xạ bên trong, do đó cho phép xóa 4 (nếu không có tham chiếu nào khác) và giải phóng bộ nhớTrong ví dụ cuối cùng, chúng tôi dự định chỉ sử dụng 4 một lần để tải xuống ngay lập tức, vì vậy chúng tôi gọi ngay cho 52Trong ví dụ trước với liên kết HTML có thể nhấp, chúng tôi không gọi 52, vì điều đó sẽ làm cho url 4 không hợp lệ. Sau khi thu hồi, do ánh xạ bị xóa nên URL không hoạt động nữaBlob đến base64Một giải pháp thay thế cho 05 là chuyển đổi 4 thành chuỗi được mã hóa base64Mã hóa đó biểu thị dữ liệu nhị phân dưới dạng một chuỗi ký tự cực kỳ an toàn “có thể đọc được” với mã ASCII từ 0 đến 64. Và điều quan trọng hơn – chúng ta có thể sử dụng mã hóa này trong “data-urls” Một url dữ liệu có dạng 57. Chúng tôi có thể sử dụng các url như vậy ở mọi nơi, ngang bằng với các url “thông thường”Ví dụ, đây là một mặt cười 5Trình duyệt sẽ giải mã chuỗi và hiển thị hình ảnh. Để chuyển đổi một 4 thành base64, chúng ta sẽ sử dụng đối tượng 59 được tích hợp sẵn. Nó có thể đọc dữ liệu từ Blobs ở nhiều định dạng. Trong chương tiếp theo, chúng tôi sẽ đề cập sâu hơn về nóĐây là bản demo tải xuống một đốm màu, bây giờ thông qua cơ sở-64 4Cả hai cách tạo URL của 4 đều có thể sử dụng được. Nhưng thường thì 41 đơn giản và nhanh hơnURL. tạoObjectURL(blob)
Blob đến url dữ liệu
Hình ảnh thành đốm màuChúng tôi có thể tạo một 4 hình ảnh, một phần hình ảnh hoặc thậm chí tạo ảnh chụp màn hình trang. Thật tiện lợi để tải nó lên đâu đóCác thao tác hình ảnh được thực hiện thông qua phần tử 44
Trong ví dụ bên dưới, một hình ảnh chỉ được sao chép, nhưng chúng tôi có thể cắt từ hình ảnh đó hoặc chuyển đổi hình ảnh đó trên canvas trước khi tạo một đốm màu 2Nếu chúng tôi thích 47 thay vì gọi lại 0Để chụp màn hình một trang, chúng ta có thể sử dụng thư viện như https. //github. com/niklasvh/html2canvas. Những gì nó làm chỉ là đi qua trang và vẽ nó trên 44. Sau đó, chúng tôi có thể nhận được một 4 của nó theo cách tương tự như trênTừ Blob đến ArrayBufferHàm tạo 4 cho phép tạo blob từ hầu hết mọi thứ, kể cả bất kỳ 9 nàoNhưng nếu chúng ta cần thực hiện xử lý cấp thấp, chúng ta có thể lấy 3 cấp thấp nhất từ 23 1Từ Blob đến luồngKhi chúng tôi đọc và ghi vào một đốm màu lớn hơn 24, việc sử dụng 25 trở nên tốn nhiều bộ nhớ hơn đối với chúng tôi. Tại thời điểm này, chúng ta có thể trực tiếp chuyển đổi blob thành luồngLuồng là một đối tượng đặc biệt cho phép đọc từng phần từ nó (hoặc ghi vào nó). Nó nằm ngoài phạm vi của chúng tôi ở đây, nhưng đây là một ví dụ và bạn có thể đọc thêm tại https. // nhà phát triển. mozilla. org/en-US/docs/Web/API/Streams_API. Luồng thuận tiện cho dữ liệu phù hợp để xử lý từng phần Phương thức 27 của giao diện 4 trả về một 28 mà khi đọc sẽ trả về dữ liệu chứa trong 4Sau đó, chúng ta có thể đọc từ nó, như thế này 2Tóm lượcTrong khi 3, 01 và các 9 khác là “dữ liệu nhị phân”, một Blob đại diện cho “dữ liệu nhị phân có loại”Điều đó làm cho Blobs thuận tiện cho các thao tác tải lên/tải xuống, vốn rất phổ biến trong trình duyệt Các phương thức thực hiện yêu cầu web, chẳng hạn như XMLHttpRequest, tìm nạp, v.v., có thể hoạt động với 4 nguyên bản, cũng như với các loại nhị phân khácChúng ta có thể dễ dàng chuyển đổi giữa 4 và kiểu dữ liệu nhị phân cấp thấp
Luồng chuyển đổi rất hữu ích khi chúng tôi cần xử lý đốm màu lớn. Bạn có thể dễ dàng tạo một 28 từ một đốm màu. Phương thức 27 của giao diện 4 trả về một 28 mà khi đọc sẽ trả về dữ liệu chứa trong đốm màu
Làm cách nào để chuyển đổi mảng thành đốm màu trong JavaScript?// tạo Blob từ mảng và chuỗi đã nhập let hello = new Uint8Array([72, 101, 108, 108, 111]); . 'văn bản/đơn giản'}); để link = tài liệu. . để link = tài liệu. . // lấy readableStream từ blob const readableStream = blob Làm cách nào để lưu mảng byte vào blob trong Java?Lúc đầu, tôi đã tạo một đối tượng của lớp Máy quét và đọc tệp của mình bằng phương thức FileReader(). Sau đó, tạo một đối tượng BLOB được khởi tạo bằng null. Tiếp theo, tôi đã Chuyển đổi tệp thành một mảng Byte ( byte[] ), lưu trữ nó vào my_byte_array. Cuối cùng đã chuyển đổi mảng byte thành BLOB bằng phương thức SerialBlob()
Làm cách nào để chuyển mảng byte trong JavaScript?Cách chuyển mảng byte sang epplus trong C# chuyển dữ liệu mảng byte từ Javascript sang asp. phía máy chủ mạng Mảng byte vào bảng tệp SQL từ delphi Truyền mảng javascript sang PHP bằng AJAX Giải mã một mảng byte thành một số nguyên đã ký lên đến 64 bit trong javascript Truyền mảng byte trong chuỗi truy vấn Truyền mảng javascript sang mảng php Làm cách nào để chuyển đổi đối tượng thành đốm màu trong JavaScript?Nếu bạn phải chuyển đổi đối tượng tệp thành đối tượng blob, bạn có thể tạo đối tượng Blob mới bằng cách sử dụng bộ đệm mảng của tệp . Xem ví dụ bên dưới. const file = new File(['hello', ' ', 'world'], 'hello_world. txt', {loại. 'văn bản/đơn giản'}); . |