Hướng dẫn how to save file in database using php - cách lưu tệp trong cơ sở dữ liệu bằng php

Tôi đã hiển thị ví dụ tải lên tệp bằng PHP trong các hướng dẫn trước đây & NBSP; Tải lên tệp PHP & nbsp; nhưng trong hướng dẫn này, tôi sẽ chỉ cho bạn cách lưu các tệp đã tải lên cơ sở dữ liệu MySQL bằng PHP.

Bạn có thể tự hỏi tại sao bạn sẽ cần lưu nội dung tệp vào cơ sở dữ liệu thay vì chỉ vào hệ thống tệp. Trong các tình huống trong đó ứng dụng PHP cần đặt toàn bộ tệp thì phương thức ưa thích sẽ là đưa tệp vào hệ thống tệp máy chủ và lưu đường dẫn tệp vào cơ sở dữ liệu.

Tuy nhiên, trong các tình huống, trong đó một ứng dụng cần lưu toàn bộ nội dung tệp vào cơ sở dữ liệu cùng với các dữ liệu khác. Trong những trường hợp như vậy, bạn phải đặt nội dung tệp vào trường Kiểu dữ liệu Blob MySQL.

Ưu điểm của việc lưu trữ các tệp vào cơ sở dữ liệu

  1. Axit [tính nguyên tử, tính nhất quán, tính toàn vẹn, độ bền] tính nhất quán bao gồm việc cuộn lại một bản cập nhật phức tạp khi các tệp được lưu trữ bên ngoài cơ sở dữ liệu. Có các tệp và cơ sở dữ liệu đồng bộ và có thể tham gia vào các giao dịch có thể rất hữu ích.
  2. Các tập tin đi với cơ sở dữ liệu và không thể mồ côi từ nó.
  3. Sao lưu tự động bao gồm các nhị phân tệp.

Nhược điểm lưu trữ tệp vào cơ sở dữ liệu

  1. Kích thước của một tệp nhị phân khác nhau giữa các cơ sở dữ liệu.
  2. Lưu trữ các tệp trong cơ sở dữ liệu có thể làm cho cơ sở dữ liệu lớn hơn nhiều. Do đó tăng kích thước của cơ sở dữ liệu. Mức độ kiến ​​thức cần thiết để duy trì cơ sở dữ liệu tăng theo quy mô của cơ sở dữ liệu, tức là, cơ sở dữ liệu lớn phức tạp hơn để duy trì so với cơ sở dữ liệu nhỏ. Do đó, nó làm tăng chi phí bảo trì cho doanh nghiệp.
  3. Cơ sở dữ liệu lớn hơn tiêu thụ nhiều bộ nhớ hơn khi họ cố gắng thực hiện những thứ vào bộ nhớ càng nhiều dữ liệu càng tốt.
  4. Tính di động cần được chăm sóc nếu các tính năng cụ thể của hệ thống như SQL Server đối tượng FileStream được sử dụng và trong tương lai, bạn cần di chuyển sang một hệ thống cơ sở dữ liệu khác.
  5. Mã lưu trữ các tệp vào cơ sở dữ liệu có thể là một vấn đề. Khi bạn lưu trữ các tệp trên hệ thống tệp, có một lớp bổ sung liên quan để bọc/tinh chỉnh/thay đổi tệp nguồn.
  6. Nó phức tạp hơn để phục vụ các tệp cho một trang web bởi vì, bạn phải viết một trình xử lý để truyền phát nhị phân tệp từ cơ sở dữ liệu. Một lần nữa, thêm một người xử lý là không thể nhưng thêm sự phức tạp.
  7. Trong nhiều trường hợp, nó sẽ làm mờ các tệp cơ sở dữ liệu và gây ra một số vấn đề về hiệu suất. Nếu bạn dán các đốm màu trong một cái bàn với một số lượng lớn các cột thì nó thậm chí còn tệ hơn.

Điều kiện tiên quyết

Php 7.4.3, MySQL 7.0.17, Apache HTTP Server 2.4

Tải lên các tệp và lưu vào MySQL

Trong ví dụ này, các tệp được chọn bằng các nút duyệt và tệp được lưu vào trường Blob cơ sở dữ liệu MySQL. Php Script lưu trữ các tệp vào cột được chỉ định của bảng cơ sở dữ liệu và trả về phản hồi dưới dạng thông báo thành công từ tập lệnh PHP. Là một bước xác thực, tôi chỉ thêm để kiểm tra xem bạn có chọn ít nhất một tệp để tải lên hay không.

Hướng dẫn này sẽ cung cấp cho bạn nhiều liên kết đính kèm hơn để tải lên tệp, vì vậy bạn sẽ nhấp vào đính kèm một tệp khác sau đó bạn sẽ nhận được nút Tệp để đính kèm một tệp khác. Nếu bạn không muốn tải lên tệp đã chọn thì bạn có thể xóa tệp đính kèm bằng liên kết Xóa.

Mẫu HTML dưới đây được yêu cầu để tải lên nhiều tệp:


	
		Files Save into MySQL database using PHP
		
Browse a file
Attach another file
 

Dưới đây, các đoạn mã JQuery được yêu cầu để đính kèm thêm tệp và xóa tệp đã chọn nếu bạn không muốn tải lên tệp đã chọn.


    $[document].ready[function [] {
        $["input[id^='upload_file']"].each[function [] {
            var id = parseInt[this.id.replace["upload_file", ""]];
            $["#upload_file" + id].change[function [] {
                if [$["#upload_file" + id].val[] !== ""] {
                    $["#moreFileUploadLink"].show[];
                }
            }];
        }];
    }];



    $[document].ready[function [] {
        var upload_number = 2;
        $['#attachMore'].click[function [] {
            //add more file
            var moreUploadTag = '';
            
			moreUploadTag += '
Upload File ' + upload_number + ''; moreUploadTag += ' '; moreUploadTag += ' Delete ' + upload_number + '
'; $['' + moreUploadTag + ''].fadeIn['slow'].appendTo['#moreFileUpload']; upload_number++; }]; }]; function deletefileLink[eleId] { if [confirm["Are you really want to delete ?"]] { var ele = document.getElementById["delete_file" + eleId]; ele.parentNode.removeChild[ele]; } }

Dưới đây mã PHP là bắt buộc để xác thực và lưu tệp vào cơ sở dữ liệu MySQL.

Bài Viết Liên Quan

Chủ Đề