Lưu tệp trong cơ sở dữ liệu MySQL

Có hai cách để lưu hình ảnh. Cách phổ biến nhất là lưu tên tệp trong bảng MySQL và tải lên hình ảnh trong thư mục. Một cách khác là lưu trữ hình ảnh trực tiếp vào Cơ sở dữ liệu. Vì, Nhà phát triển thường không sử dụng phương pháp thứ hai, họ có thể bị nhầm lẫn

Sử dụng MySQL cho thông tin cơ sở dữ liệu chắc chắn là một lựa chọn rất tốt. Đôi khi để lưu hình ảnh hoặc tệp trong cơ sở dữ liệu hơn là trong một thư mục riêng sẽ thuận tiện hơn. Trong bài viết này, Bạn sẽ tìm hiểu cách lưu hình ảnh hoặc tệp vào cơ sở dữ liệu MySQL và cách hình ảnh cơ sở dữ liệu sẽ được hiển thị với ví dụ thực tế

Để lưu trữ tệp đã tải lên trong cơ sở dữ liệu là một phần phức tạp hơn so với việc chỉ di chuyển tệp bằng move_uploaded_file. vì vậy hôm nay chúng ta sẽ kiểm tra việc lưu trữ một tệp trong cơ sở dữ liệu. Cơ sở dữ liệu MySQL cung cấp kiểu dữ liệu chuyên dụng để lưu một lượng lớn dữ liệu và kiểu dữ liệu đó là BLOB

BLOB là gì?

Kiểu dữ liệu BLOB là một đối tượng lớn nhị phân có thể chứa độ dài dữ liệu thay đổi. BLOB thường được sử dụng để lưu trữ dữ liệu nhị phân và có bốn loại. ’

1. TINYBLOB
2. BÃI
3. VỪABLOB
4. LONGBLOB

Sự khác biệt chính giữa tất cả các loại là độ dài của dữ liệu tương ứng có thể được lưu

Để lưu trữ tệp trong cơ sở dữ liệu hoặc trong MySQL, hãy tạo một bảng có kiểu dữ liệu BLOB nơi tệp có thể được lưu trữ bằng câu lệnh sau. Vì BLOB là viết tắt của Đối tượng lớn nhị phân và là phiên bản an toàn nhị phân của loại TEXT, điều đó có nghĩa là dữ liệu không phải là văn bản có thể đọc được và sẽ không được hiểu là văn bản có thể đọc được trong khi nó lưu trữ dữ liệu nhị phân nghiêm ngặt

Ở đây, tôi đang lưu trữ một hình ảnh trong cơ sở dữ liệu thay vì chỉ di chuyển tệp từ vị trí tạm thời sang thư mục cuối cùng để bạn sẽ đọc nội dung của nó và chèn nó vào cơ sở dữ liệu

GHI CHÚ. Các cột BLOB phân biệt chữ hoa chữ thường nếu bạn lưu trữ dữ liệu trong đó và sau đó thử tìm kiếm chúng bằng truy vấn MySQL

Thí dụ

Đây là Cấu trúc bảng có hai trường, Đầu tiên là id chính tự động tăng và trường thứ hai là Blob để lưu hình ảnh

1

2

3

4

5

6

 

TẠO TỆP BẢNG files (

    id INT AUTO_INCREMENT PRIMARY KEY,

    file_data MEDIUMBLOB KHÔNG NULL

);

 

Tiếp theo, Bạn cần một giao diện web để tải lên một hình ảnh. Để làm được điều đó, hãy tạo biểu mẫu HTML cho phép người dùng tải lên tệp mà bạn muốn lưu trữ trong cơ sở dữ liệu

1

2

3

4

5

6

 

<biểu mẫu tên = "tệp" action="filedb.php" phương thức = "post" enctype="multipart/form-data">

   <đầu vào loại = "file" name="file" value="" />

   <đầu vào loại = "submit" name="Upload" value="Upload">

< / biểu mẫu>

 

Sau khi hình thành, tạo fileb. php tệp hiển thị cho bạn mã chính để lưu trữ tệp trong cơ sở dữ liệu. Ở đây hàm fread đọc nội dung tệp hoặc hình ảnh và lưu nội dung vào cơ sở dữ liệu MySQL bằng truy vấn MySQL

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

 

// Đây là tệp chúng tôi sẽ thêm nó vào cơ sở dữ liệu

$MY_FILE = $_FILES['file']['tmp_name'];

 

// Để mở tệp và lưu trữ nội dung của nó trong $file_contents

$tệp = fopen($MY_FILE, 'r');

$file_contents = sợ($file, filesize($MY_FILE));

fđóng($tệp);

/* Chúng tôi cần thoát khỏi một số ký tự có thể xuất hiện trong  file_contents, vì vậy hãy làm điều đó ngay bây giờ trước khi chúng tôi bắt đầu truy vấn. */

 

$file_contents = addslashes($file_contents);

 

// Để thêm tệp vào cơ sở dữ liệu

mysql_connect('localhost', 'root' . ", '') or die("Unable to connect to database.");

mysql_select_db('kiểm tra') hoặc die("Unable to select the DB.");

mysql_query("CHÈN VÀO tệp SET file_data='$file_contents'") or die("MySQL Query Error: " . mysql_error() . ". "SQL là. $SQL);

mysql_close();

echo "Tệp được CHÈN vào bảng tệp thành công. ";

 

Đó là nó. Tôi đã hoàn thành với một lời giải thích. Nếu bạn gặp bất kỳ sự cố nào khi thiết lập mã này, hãy cho tôi biết qua nhận xét

Bạn có thể lưu tệp trong cơ sở dữ liệu MySQL không?

Bạn có thể tải lên và lưu tệp trong một thư mục trên máy chủ và tên tệp hoặc đường dẫn của tệp trong cơ sở dữ liệu cùng với mã định danh duy nhất . Nếu bạn thực sự muốn lưu tệp trong cơ sở dữ liệu (rất không nên dùng), bạn có thể sử dụng kiểu dữ liệu blob.

Tôi có thể lưu trữ tệp trong cơ sở dữ liệu không?

Có thể lưu trữ nội dung của tệp trong chính cơ sở dữ liệu hoặc chúng tôi có thể lưu trữ nội dung ở một nơi khác và lập chỉ mục nội dung đó với cơ sở dữ liệu. Trong bài viết này, chúng tôi sẽ minh họa cả hai phương pháp này bằng một Ứng dụng lưu trữ hình ảnh cơ bản.

Làm cách nào để lưu tệp trong cơ sở dữ liệu MySQL bằng PHP?

Bao gồm tệp cấu hình cơ sở dữ liệu để kết nối và chọn cơ sở dữ liệu MySQL. Lấy phần mở rộng tệp bằng hàm pathinfo() trong PHP và xác thực định dạng tệp để kiểm tra xem người dùng có chọn tệp hình ảnh hay không. Tải hình ảnh lên máy chủ bằng hàm move_uploaded_file() trong PHP

Làm cách nào để lưu trữ tệp PDF trong cơ sở dữ liệu MySQL?

MySQL có kiểu dữ liệu BLOB có thể được sử dụng để lưu trữ các tệp như. pdf,. jpg,. .
'Tôi'. nhập số nguyên
'Tên dự án'. gõ VĂN BẢN
'pdf_doc'. gõ BLOB