Cách lưu trữ chuỗi base64 trong MySQL

Từ định nghĩa này, chúng tôi hy vọng nội dung Base64 được lưu trữ trong kiểu dữ liệu VARCHAR(max) trong SQL Server. Hàm CONVERT() và CAST() của SQL Server không nhận dạng cụ thể nội dung văn bản Base64, nó xử lý nội dung Base64 giống như bất kỳ văn bản thông thường nào

varbinary(max) dành cho dữ liệu nhị phân. base64 là một kỹ thuật để chuyển đổi dữ liệu nhị phân thành chuỗi. Không cần thiết ở đây, vì bạn có thể lưu trữ trực tiếp dữ liệu nhị phân được mã hóa của mình trong cột varbinary(max). Bảng tệp rất thú vị nếu đôi khi bạn muốn truy cập dữ liệu dưới dạng tệp trong chia sẻ tệp. Mặt khác, chỉ cần sử dụng varbinary(max)

Mã hóa và giải mã hàm chuỗi rất hữu ích trong Sql Server. Nhiều khi cần mã hóa hoặc giải mã mật khẩu một số giá trị cột đặc biệt trong sql thì bạn có thể sử dụng mã sql này và đạt được mục tiêu của mình trong một phút

Ví dụ: bạn có thể nhúng hình ảnh được mã hóa base64 vào tài liệu XML hoặc email. Base64 cũng thân thiện với luồng. Bạn có thể mã hóa và giải mã nhanh chóng (không cần biết tổng kích thước của dữ liệu). Mặc dù base64 phù hợp để vận chuyển, nhưng không lưu trữ hình ảnh của bạn được mã hóa base64. Base64 không cung cấp tổng kiểm tra hoặc bất kỳ thứ gì có giá trị để lưu trữ

Đối tượng lớn nhị phân BLOB là loại dữ liệu MySQL có thể lưu trữ dữ liệu nhị phân như hình ảnh, đa phương tiện và tệp PDF. Trong hướng dẫn này, bạn sẽ sử dụng kiểu dữ liệu MySQL BLOB để lưu trữ hình ảnh với PHP trên Ubuntu 18. 04

BLOB là viết tắt của đối tượng dữ liệu lớn nhị phân. Giá trị tối đa của đối tượng BLOB được chỉ định bởi bộ nhớ khả dụng và kích thước gói giao tiếp. Bạn có thể thay đổi kích thước gói giao tiếp bằng cách sử dụng biến max_allowed_packet trong MySQL và post_max_size trong cài đặt PHP. Hãy xem cách PHP PDO xử lý loại BLOB trong MySQL

Base64 chỉ được sử dụng làm cơ chế vận chuyển, không dùng để lưu trữ. Ví dụ: bạn có thể nhúng hình ảnh được mã hóa base64 vào tài liệu XML hoặc email. Base64 cũng thân thiện với luồng. Bạn có thể mã hóa và giải mã nhanh chóng (không cần biết tổng kích thước của dữ liệu). Mặc dù base64 phù hợp để vận chuyển, nhưng không lưu trữ hình ảnh của bạn được mã hóa base64

Lược đồ mã hóa Base64 thường được sử dụng khi có nhu cầu mã hóa dữ liệu nhị phân cần được lưu trữ và truyền qua phương tiện được thiết kế để xử lý dữ liệu văn bản. Từ định nghĩa này, chúng tôi hy vọng nội dung Base64 được lưu trữ trong kiểu dữ liệu VARCHAR(max) trong SQL Server

Tìm hiểu Cách Chèn ảnh vào cơ sở dữ liệu Mysql trong Laravel 6 framework. Cách lấy ảnh từ cơ sở dữ liệu Mysql trong Laravel 6 framework. Cách lưu trữ hình ảnh trong cơ sở dữ liệu Mysql bằng Laravel 6 framework

Lưu trữ hình ảnh vào Cơ sở dữ liệu Mysql và sau đó tìm nạp hình ảnh từ cơ sở dữ liệu Mysql trong khung Laravel là một nhiệm vụ đối với bất kỳ nhà phát triển web nào. Và trong bài viết này, chúng ta sẽ tìm hiểu cách lưu trữ hình ảnh và truy xuất hình ảnh từ cơ sở dữ liệu MySql, chúng ta sẽ tìm hiểu những điều này trong Laravel 6 framework

Tôi sẽ chỉ cho bạn cách chuyển đổi hình ảnh định dạng base64 thành hình ảnh dễ dàng như thế nào. Tất cả những gì bạn phải trích xuất dữ liệu hình ảnh base64 từ chuỗi đó, giải mã nó và sau đó bạn có thể lưu nó vào đĩa. Đây là chức năng sẽ lưu hình ảnh base64 vào đĩa

Base64 còn được gọi là Mã hóa chuyển nội dung Base64 là một kỹ thuật mã hóa và giải mã được sử dụng để chuyển đổi dữ liệu nhị phân sang định dạng văn bản Tiêu chuẩn trao đổi thông tin (ASCII) của Mỹ và ngược lại. — Công nghệ

Bất kỳ dữ liệu nhị phân nào (chẳng hạn như hình ảnh trong trường hợp này) đều có thể được mã hóa bằng base64 và dữ liệu được mã hóa thường bao gồm 64 ký tự tiếng Anh mà con người không thể đọc được. Khi một hình ảnh được lưu trữ bằng base64 vào cơ sở dữ liệu như MongoDB, hình ảnh được lưu trữ dưới dạng một chuỗi trong cơ sở dữ liệu. Chuỗi này sau đó có thể được giải mã trở lại dạng ban đầu khi cần

Tạo máy chủ của bạn

Vì ứng dụng của chúng tôi có phần giao diện người dùng và phần phụ trợ được tách biệt, nên chúng tôi sẽ bắt đầu bằng cách tạo máy chủ của mình. Trước hết, chúng tôi sẽ tạo một thư mục có tên là máy chủ, sử dụng lệnh bên dưới

mkdir server
cd server

Tiếp theo, chúng tôi sẽ khởi tạo dự án bằng cách sử dụng lệnh bên dưới. Lệnh này tích hợp gói. json trong ứng dụng của bạn. Bưu kiện. json giúp theo dõi tất cả các gói và phần phụ thuộc của chúng tôi

npm init -y

Tiếp theo, chúng tôi sẽ cài đặt tất cả các phụ thuộc cần thiết. Chúng tôi sẽ cài đặt chúng trên một dòng bằng mã bên dưới;

npm i express mongoose cors 
  • Cors. Đây là cách viết tắt của “Chia sẻ tài nguyên nguồn gốc chéo” được sử dụng để bảo vệ máy chủ web khỏi bị truy cập bởi một trang web khác
  • Thể hiện. Đây là một nút. js giúp tạo điều kiện thuận lợi cho việc tạo nhanh các ứng dụng dựa trên nút
  • cầy mangut. Đây là thư viện Mô hình hóa dữ liệu đối tượng (ODM) giúp truy cập, giao tiếp và sử dụng MongoDB dễ dàng hơn

Trong máy chủ, chúng ta cần tạo một thư mục khác để chứa mô hình và lược đồ

mkdir models
touch models/post.js

Lược đồ của chúng tôi sẽ giống như sau

Bạn sẽ nhận thấy rằng tôi chỉ tạo một khóa đối tượng trong lược đồ, đó là myFile. Khóa này có một giá trị chuỗi sẽ chứa dữ liệu được mã hóa từ hình ảnh
Tiếp theo, chúng ta sẽ tạo một tệp trong thư mục máy chủ có tên là “index. js'' sẽ chứa phần còn lại của mã của chúng tôi

touch index.js

chỉ mục của chúng tôi. tệp js sẽ chứa các mục sau

Tại thời điểm này, chúng tôi đã hoàn thành với máy chủ. Vì vậy, chúng tôi sẽ khởi động máy chủ của mình bằng cách sử dụng lệnh bên dưới

node index.js

Tạo ứng dụng React của chúng tôi

Bây giờ là lúc để chuyển sang phía máy khách của ứng dụng của chúng tôi. Chúng ta sẽ bắt đầu bằng cách tạo một ứng dụng phản ứng và thay đổi nó vào thư mục ứng dụng. Sau đó, chúng tôi sẽ tạo một thư mục mới có tên là “các thành phần” và sau đó là một tệp jsx có tên là “ImageUploader”

npx create-react-app client
cd client
mkdir components
touch components/ImageUploader.jsx

Phần phụ thuộc duy nhất mà chúng tôi yêu cầu là axios, ứng dụng khách HTTP dựa trên lời hứa được sử dụng để thực hiện các yêu cầu HTTP. Nó có thể được cài đặt bằng lệnh sau;

npm i axios

Trong ImageUploader. jsx, các dòng mã sau sẽ được thêm vào

Đoạn mã trên trông giống như một tổ chức các chức năng và được chia nhỏ như sau

  • Hàm createImage sử dụng axios để gửi dữ liệu qua máy chủ đến cơ sở dữ liệu
  • Hàm createPost tạo hình ảnh mới không đồng bộ hoặc trả về lỗi tùy thuộc vào các tham số được nêu trong máy chủ
  • Hàm convertToBase64 sử dụng JavaScript FileReader có phương thức readAsDataURL để đọc dữ liệu nhị phân và mã hóa nó dưới dạng URL dữ liệu base64. Đúng như tên gọi, công việc của nó là chuyển đổi các tệp thành base64
  • Hàm handleFileUpload nhắm mục tiêu tệp sẽ được tải lên và tệp được chuyển đổi không đồng bộ thành base64 bằng hàm convertToBase64. Dữ liệu được mã hóa sau đó được sử dụng để cập nhật trạng thái postImage
  • Hàm handleSubmit sau đó gửi dữ liệu được mã hóa dưới dạng chuỗi tới cơ sở dữ liệu khi nhấp vào nút gửi

Phía máy khách của ứng dụng của chúng tôi có thể được bắt đầu bằng cách sử dụng lệnh bắt đầu npm trong thiết bị đầu cuối. Khi cả phía máy khách và phía máy chủ đang chạy đồng thời, bạn có thể tải lên bất kỳ hình ảnh nào và hình ảnh đó sẽ được lưu trong cơ sở dữ liệu. Để rõ ràng, tôi đã tải lên một hình ảnh và với MongoDB Compass, chúng ta có thể truy cập dữ liệu như hình bên dưới

Từ hình ảnh trên, bạn có thể thấy rằng hình ảnh tải lên được lưu trữ dưới dạng chuỗi. Chuỗi này sau đó có thể được giải mã và sử dụng khi cần thiết

Phần kết luận

Nếu bạn đã làm được đến thời điểm này, xin chúc mừng. Bạn đã học thành công cách lưu trữ hình ảnh trong cơ sở dữ liệu bằng base64. Nếu bạn thích hướng dẫn này, vui lòng cho tôi điểm cao. Đối với nhận xét, đóng góp hoặc câu hỏi, chỉ cần theo dõi tôi trên Twitter. Thanks

Làm cách nào để lưu trữ chuỗi Base64 trong SQL Server?

Bước 1 - Giải mã và Chuyển đổi Văn bản được mã hóa Base64 thành Loại nhị phân. .
Bước 2 - Tạo gói SSIS mới. .
Bước 3 - Thêm tác vụ luồng dữ liệu trong Dịch vụ tích hợp. .
Bước 4 - Thiết lập Nguồn dữ liệu trong SSIS. .
Bước 5 - Ánh xạ các cột trong Dịch vụ tích hợp máy chủ SQL. .
Bước 6 - Xuất chuyển đổi cột trong Dịch vụ tích hợp

Kiểu dữ liệu cho Base64 trong MySQL là gì?

Dữ liệu được mã hóa Base64 là dữ liệu ký tự , vì vậy CLOB sẽ phù hợp.

Có thể lưu Base64 trong cơ sở dữ liệu không?

Nói chung là không . Base64 sẽ chiếm nhiều không gian hơn mức cần thiết để lưu trữ những hình ảnh đó. Tùy thuộc vào kích thước hình ảnh của bạn và tần suất chúng được truy cập, việc đưa vào cơ sở dữ liệu thường không phải là áp lực tối ưu. Bạn nên lưu trữ chúng trên hệ thống tệp hoặc trong thứ gì đó như bộ lưu trữ Azure blob.

Blob có giống với Base64 không?

BLOB và Mã hóa Base64 . BLOBs are treated in the same manner as strings because they have already been encoded by using base64 encoding before storage into a dictionary file.