Hướng dẫn can you store pdf in mysql? - bạn có thể lưu trữ pdf trong mysql không?

Nếu bạn chỉ đơn giản là tìm cách lưu trữ các tệp PDF đã tải lên trên máy chủ của mình, thì việc sao chép tệp vào một thư mục nhất định hơn với tên tệp duy nhất và chỉ cần lưu trữ toàn bộ đường dẫn của tệp đó trong bảng MySQL của bạn.

Nếu bạn chắc chắn đang tìm cách lưu trữ dữ liệu nhị phân đầy đủ của tệp trong cơ sở dữ liệu MySQL của mình, thì bạn sẽ phải thực hiện thêm một chút công việc để đưa dữ liệu nhị phân vào trường Blob trong MySQL và sau đó biến nó thành một tệp khi Bạn kéo nó ra một lần nữa vào một ngày sau đó.

Bạn có thể sẽ muốn lưu trữ không chỉ dữ liệu nhị phân cho tệp trong bảng MySQL của bạn mà còn cả tên tệp, kiểu tệp và thậm chí có thể kích thước của tệp (để liệt kê trên trang web của bạn). Bạn có thể sẽ muốn một bảng như;

CREATE TABLE files (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  filename VARCHAR(128) NOT NULL,
  mimetype VARCHAR(64) NOT NULL,
  data MEDIUMBLOB NOT NULL
);

Trong PHP của bạn, sau đó bạn có thể chèn một tệp đã tải lên với một cái gì đó như sau;

$filePointer = fopen($_FILES['fileUpload']['tmp_name'], 'r');
$fileData = fread($filePointer, filesize($_FILES['fileUpload']['tmp_name']));
$fileData = addslashes($fileData);
$sql = "INSERT INTO files (filename, mimetype, data) VALUES( $fileName, $fileType, $fileData )";

Lấy lại tệp sẽ yêu cầu một tập lệnh chuyên dụng chọn tệp thích hợp và sau đó sử dụng một loạt các lệnh 'tiêu đề' để đẩy tệp đó trở lại trình duyệt bằng một biểu mẫu mà trình duyệt biết cách xử lý nó.

Bạn có thể đọc một hướng dẫn đầy đủ về điều này ở đây.

Giống như mọi khi, tôi đang chia sẻ những điều mới mà tôi học được ở đây trên blog của mình. Gần đây tôi đã làm việc với một yêu cầu cho một bảng điều khiển báo cáo ứng dụng web Stack Stack trong đó tôi cần lưu trữ - và cuối cùng - truy xuất tệp .pdf. Tôi đã đọc ở một số nơi (cuốn sách tuyệt vời này là một tài nguyên tuyệt vời) rằng một tùy chọn khả thi là lưu trữ hình ảnh hoặc tài liệu (.pdf trong trường hợp này) trong bảng cơ sở dữ liệu thực tế trái ngược với hệ thống tệp máy chủ. MySQL có kiểu dữ liệu BLOB có thể được sử dụng để lưu trữ các tệp như .pdf, .jpg, .txt và tương tự. Trong bài đăng trên blog này, tôi đề cập đến cách tôi…

Giống như mọi khi, tôi đang chia sẻ những điều mới mà tôi học được ở đây trên blog của mình. Gần đây tôi đã làm việc với một yêu cầu cho một bảng điều khiển báo cáo ứng dụng web Stack Stack trong đó tôi cần lưu trữ - và cuối cùng - truy xuất tệp .pdf. Tôi đã đọc ở một số nơi (cuốn sách tuyệt vời này là một tài nguyên tuyệt vời) rằng một tùy chọn khả thi là lưu trữ hình ảnh hoặc tài liệu (.pdf trong trường hợp này) trong bảng cơ sở dữ liệu thực tế trái ngược với hệ thống tệp máy chủ. MySQL có kiểu dữ liệu BLOB có thể được sử dụng để lưu trữ các tệp như .pdf, .jpg, .txt và tương tự. Trong bài đăng trên blog này, tôi đề cập đến cách tôi hoàn thành tải lên và lưu trữ tệp .pdf thực tế trong cột BLOB trong MySQL bằng PHP. Bất kỳ sửa chữa, lời khuyên, con trỏ và khuyến nghị cho các thực tiễn tốt nhất luôn được hoan nghênh. Tất cả chúng ta đều học khi chúng ta đi !!!

Bản tin cho các nhà phát triển PHP và MySQL

Nhận một bản sao của Sách điện tử của tôi, 10 Lời khuyên của MySQL cho mọi người, hoàn toàn miễn phí khi bạn đăng ký nhận bản tin OpenLamptech.absolutely free when you subscribe to the OpenLampTech newsletter.


Self-Promotion:

Nếu bạn thích nội dung được viết ở đây, bằng mọi cách, hãy chia sẻ blog này và (các) bài đăng yêu thích của bạn với những người khác có thể được hưởng lợi từ hoặc thích nó. Vì cà phê là đồ uống yêu thích của tôi, bạn thậm chí có thể mua cho tôi một cái nếu bạn muốn!Since coffee is my favorite drink, you can even buy me one if you would like!


Tôi đang sử dụng một bảng có tên ‘Project_PDF, với 3 cột (xem ảnh chụp màn hình đi kèm) để lưu trữ dữ liệu:

  • Id id, loại INTEGER
  • Project_name,: Loại TEXT
  • ‘PDF_DOC,: Loại BLOB

Hướng dẫn can you store pdf in mysql? - bạn có thể lưu trữ pdf trong mysql không?
Cấu trúc bảng cho bảng Project_PDF.

Với Web HTML form đơn giản dưới đây, chúng tôi có thể thu thập ‘Project_Name, và bật tệp đính kèm tệp .pdf tải lên:

Hướng dẫn can you store pdf in mysql? - bạn có thể lưu trữ pdf trong mysql không?
Biểu mẫu web đơn giản để tải PDF lên cơ sở dữ liệu.

Dưới đây là mã nguồn HTML cho Web form trên:

& nbsp; & nbsp;

& nbsp; & nbsp; Tải lên PDFlink rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous"/>
    <title>Upload PDF</title>

& nbsp; & nbsp; Tải PDF lên cơ sở dữ liệu & NBSP; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Tên dự án & NBSP; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Gửi đến cơ sở dữ liệu & NBSP; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;/p><h4 class="text-center" style="margin-top: 100px;">Upload A PDF To The Database</h4>
<div class="d-flex justify-content-center align-self-center" style="margin-top: 115px;">
    <form action="submit.php" method="POST" accept-charset="utf-8" enctype="multipart/form-data">
        <div class="formgroup container-fluid">
            <label for="project_name">Project Name</label>
            <input type="text" name="project_name"/>
        </div>
        <div class="formgroup container-fluid">
            <input type="file" name="pdf_file" accept=".pdf"/>
            <input type="hidden" name="MAX_FILE_SIZE" value="67108864"/>
       


       

           

           
       

   

   
   
   


Khám phá các bài viết cao cấp, hướng dẫn chuyên sâu, video hướng dẫn và nhiều hơn nữa bằng cách tham gia tư cách thành viên tầng học của MySQL. Bạn có quyền truy cập vào nội dung độc quyền chưa được công bố ở bất cứ nơi nào khác với tư cách thành viên này. Với nội dung mới được thêm vào thường xuyên, tiếp tục học MySQL ở bất kỳ cấp độ nào.“MySQL Learning Tier” membership. You have access to exclusive content unpublished anywhere else with this membership. With new content being added regularly, continue learning MySQL at any level.


Nhìn vào mã

Chúng tôi sẽ sử dụng mã PHP này được lưu trữ trong tập lệnh ____10 - đó là form

$filePointer = fopen($_FILES['fileUpload']['tmp_name'], 'r');
$fileData = fread($filePointer, filesize($_FILES['fileUpload']['tmp_name']));
$fileData = addslashes($fileData);
$sql = "INSERT INTO files (filename, mimetype, data) VALUES( $fileName, $fileType, $fileData )";
2 - cùng với một số thực tiễn tốt nhất sử dụng các khối có điều kiện
$filePointer = fopen($_FILES['fileUpload']['tmp_name'], 'r');
$fileData = fread($filePointer, filesize($_FILES['fileUpload']['tmp_name']));
$fileData = addslashes($fileData);
$sql = "INSERT INTO files (filename, mimetype, data) VALUES( $fileName, $fileType, $fileData )";
3 và gói tất cả các hoạt động cơ sở dữ liệu trong khối
$filePointer = fopen($_FILES['fileUpload']['tmp_name'], 'r');
$fileData = fread($filePointer, filesize($_FILES['fileUpload']['tmp_name']));
$fileData = addslashes($fileData);
$sql = "INSERT INTO files (filename, mimetype, data) VALUES( $fileName, $fileType, $fileData )";
4 để hoàn thành.

& nbsp; & nbsp; & nbsp; & nbsp; // Thông tin tệp PDF đính kèm & NBSP; & nbsp; & nbsp; & nbsp; $ file_name = $ _ files ['pdf_file'] ['name']; & nbsp; & nbsp; & nbsp; & nbsp; $ file_tmp = $ _ files ['pdf_file'] ['tmp_name']; & nbsp; & nbsp; & nbsp; & nbsp; if ($ pdf_blob = fopen ($ file_tmp, "rb")) {& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; thử {& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Bao gồm __dir __. "/Bao gồm/databaseConnection.php";?php
if (isset($_POST['submit']) && !empty($_FILES['pdf_file']['name'])) {
     //a $_FILES 'error' value of zero means success. Anything else and something wrong with attached file.
    if ($_FILES['pdf_file']['error'] != 0) {
        echo 'Something wrong with the file.';
    } else { //pdf file uploaded okay.
        //project_name supplied from the form field
        $project_name = htmlspecialchars($_POST['project_name']);

& nbsp; & nbsp; & nbsp; & nbsp; // Thông tin tệp PDF đính kèm & NBSP; & nbsp; & nbsp; & nbsp; $ file_name = $ _ files ['pdf_file'] ['name']; & nbsp; & nbsp; & nbsp; & nbsp; $ file_tmp = $ _ files ['pdf_file'] ['tmp_name']; & nbsp; & nbsp; & nbsp; & nbsp; if ($ pdf_blob = fopen ($ file_tmp, "rb")) {& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; thử {& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Bao gồm __dir __. "/Bao gồm/databaseConnection.php";//attached pdf file information
        $file_name = $_FILES['pdf_file']['name'];
        $file_tmp = $_FILES['pdf_file']['tmp_name'];
        if ($pdf_blob = fopen($file_tmp, "rb")) {
            try {
                include __DIR__."/includes/DatabaseConnection.php";

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; $ insert_sql = "chèn vào` project_pdf` (`project_name`,` pdf_doc`) & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; : project_name,: pdf_doc); ";$insert_sql = "INSERT INTO `project_pdf` (`project_name`, `pdf_doc`)
                              VALUES(:project_name, :pdf_doc);"
;

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; $ stmt = $ pdo ---> chuẩn bị ($ insert_sql); & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; $ stmt- & gt; bindparam (': project_name', $ presject_name); & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; $ stmt- & gt; bindparam (': pdf_doc', $ pdf_blob, pdo :: param_lob);$stmt = $pdo--->prepare($insert_sql);
                $stmt-&gt;bindParam(':project_name', $project_name);
                $stmt-&gt;bindParam(':pdf_doc', $pdf_blob, PDO::PARAM_LOB);

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; if ($ stmt- & gt; exec () === false) {& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; echo'could không lưu thông tin vào cơ sở dữ liệu '; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; } khác {& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; echo'information đã lưu '; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; } & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; } Catch (pdoException $ e) {& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; echo'database lỗi '. $ e- & gt; getMessage ().' trong '. $ e- & gt; getfile (). & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ':'. $ e- & gt; getLine (); & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; } & nbsp; & nbsp; & nbsp; & nbsp; } khác {& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; // fopen () đã không thành công trong việc mở tệp .pdf để đọc. & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; echo'could không mở tệp pdf đính kèm '; & nbsp; & nbsp; & nbsp; & nbsp; } & nbsp; & nbsp; }} khác {& nbsp; & nbsp; // Nút gửi không được nhấp. Không có điều hướng kịch bản trực tiếp. & nbsp; & nbsp; Tiêu đề ('Vị trí: sele_file.php');}if ($stmt-&gt;execute() === FALSE) {
                    echo 'Could not save information to the database';
                } else {
                    echo 'Information saved';
                }
            } catch (PDOException $e) {
                echo 'Database Error '. $e-&gt;getMessage(). ' in '. $e-&gt;getFile().
                    ': '. $e-&gt;getLine();
            }
        } else {
            //fopen() was not successful in opening the .pdf file for reading.
            echo 'Could not open the attached pdf file';
        }
    }
} else {
    //submit button was not clicked. No direct script navigation.
    header('Location: choose_file.php');
}

Xác minh nút được nhấp và tệp được đính kèm

Khối

$filePointer = fopen($_FILES['fileUpload']['tmp_name'], 'r');
$fileData = fread($filePointer, filesize($_FILES['fileUpload']['tmp_name']));
$fileData = addslashes($fileData);
$sql = "INSERT INTO files (filename, mimetype, data) VALUES( $fileName, $fileType, $fileData )";
3 đầu tiên xác minh rằng nút 'gửi' từ form đã được nhấp và trường 'PDF_FILE' có tệp đính kèm bằng cách sử dụng các hàm PHP
$filePointer = fopen($_FILES['fileUpload']['tmp_name'], 'r');
$fileData = fread($filePointer, filesize($_FILES['fileUpload']['tmp_name']));
$fileData = addslashes($fileData);
$sql = "INSERT INTO files (filename, mimetype, data) VALUES( $fileName, $fileType, $fileData )";
9 và BLOB0 ):

1

isset($_POST['submit'])&&!empty($_FILES['pdf_file']['name']))($_POST['submit']) && !empty($_FILES['pdf_file']['name']))

Mẹo: Có thể xác thực nhiều hơn có thể được thực hiện ở đây để xác minh loại tệp là một .pdf thực tế vì loại tệp đó là những gì chúng tôi mong đợi để lưu trữ trong cơ sở dữ liệu.: More validation can be implemented here to verify the file type is an actual .pdf since that file type is what we are expecting to store in the database.

Thông tin: Truy cập tài liệu trực tuyến PHP chính thức để biết thêm thông tin về ISSET () và trống ().: Visit the official PHP online documentation for more information on isset() and empty().

Kiểm tra mảng php $ _files để biết lỗi

BLOB2 BLOB3 cung cấp một số mã lỗi liên quan cho tệp đính kèm tệp. Giá trị 0 (0) có nghĩa là mọi thứ đều ổn với tệp và nó được tải lên thành công. Trong

$filePointer = fopen($_FILES['fileUpload']['tmp_name'], 'r');
$fileData = fread($filePointer, filesize($_FILES['fileUpload']['tmp_name']));
$fileData = addslashes($fileData);
$sql = "INSERT INTO files (filename, mimetype, data) VALUES( $fileName, $fileType, $fileData )";
3 cụ thể này, khối nếu giá trị đó không phải là 0 (không), thì chúng tôi BLOB5 trong trình duyệt rằng có điều gì đó không ổn với việc tải lên tệp:

1

$_FILES['pdf_file']['error']!=0['pdf_file']['error'] != 0

Liên quan: Xem tài liệu trực tuyến PHP chính thức để biết thêm thông tin về lỗi tải lên tệp.: See the official PHP online documentation for more information on file upload errors.

Dữ liệu PHP $ _POST và $ _FILES

Mảng liên kết BLOB6 có giá trị cho trường ‘Project_Name, BLOB7 được ghi lại trong form và được gửi qua phương thức bài HTTP. Tương tự như vậy, mảng liên kết BLOB2 có một số giá trị cho một tệp hoặc tệp đính kèm. Tôi đang gán 2 trong số chúng cho các biến, nhưng chỉ sử dụng một - BLOB0 - trong mã tiếp theo:

  • BLOB1 - Tên tệp thực tế từ máy khách. (Có thể được sử dụng trong cột Tên tệp nếu cần
  • BLOB0 - Tên tệp tạm thời của tệp được tải lên như được lưu trữ trên máy chủ.

123
2
3

$project_name=htmlspecialchars($_POST['project_name']);$file_name=$_FILES['pdf_file']['name'];$file_tmp=$_FILES['pdf_file']['tmp_name']; = htmlspecialchars($_POST['project_name']);
$file_name = $_FILES['pdf_file']['name'];
$file_tmp = $_FILES['pdf_file']['tmp_name'];

Liên quan: Đọc thêm về các phương thức tải lên bài trong tài liệu PHP trực tuyến chính thức.: Read more about POST upload methods in the official online PHP documentation.

Đọc trong .PDF Dữ liệu nhị phân và chuẩn bị lưu trữ trong cột Blob MySQL với PHP

Cuộc gọi đến BLOB3 đọc trong tệp ở định dạng nhị phân (BLOB4) thành biến ‘$ pdf_blob. Nếu BLOB3 không thể mở tệp, khối

$filePointer = fopen($_FILES['fileUpload']['tmp_name'], 'r');
$fileData = fread($filePointer, filesize($_FILES['fileUpload']['tmp_name']));
$fileData = addslashes($fileData);
$sql = "INSERT INTO files (filename, mimetype, data) VALUES( $fileName, $fileType, $fileData )";
3 này ________ 25 Thông báo trong khối BLOB8 cho trình duyệt:

1

$pdf_blob=fopen($file_tmp,"rb") = fopen($file_tmp, "rb")


Kết nối cơ sở dữ liệu MySQL và các câu lệnh đã chuẩn bị

Cuối cùng, chúng tôi nhìn vào toàn bộ khối

$filePointer = fopen($_FILES['fileUpload']['tmp_name'], 'r');
$fileData = fread($filePointer, filesize($_FILES['fileUpload']['tmp_name']));
$fileData = addslashes($fileData);
$sql = "INSERT INTO files (filename, mimetype, data) VALUES( $fileName, $fileType, $fileData )";
4.

Tôi có tất cả thông tin kết nối cơ sở dữ liệu được lưu trữ trong một tệp riêng có tên BLOB0 và đưa nó vào tập lệnh tại thời điểm này bằng Chỉ thị BLOB1.

Vì chúng tôi đang giới thiệu đầu vào do người dùng cung cấp từ web form vào cơ sở dữ liệu, chúng tôi sử dụng các câu lệnh được chuẩn bị tận dụng các phương thức PDO PHP:

  • BLOB3
  • BLOB4
  • BLOB5

Chèn tệp .pdf vào cột blob mysql với PHP

Nếu cuộc gọi đến BLOB5 không thành công, chúng tôi sẽ tin nhắn cho trình duyệt rằng thông tin không thể được lưu. Mặt khác, dữ liệu được chèn thành công và chúng tôi đã lưu thông tin được lưu:

12345678910111213141516171819
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

thử {& nbsp; & nbsp; Bao gồm __dir __. "/Bao gồm/databaseConnection.php";{
    include __DIR__."/includes/DatabaseConnection.php";

& nbsp; & nbsp; $ insert_sql = "chèn vào` project_pdf` (`project_name`,` pdf_doc`) & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;$insert_sql = "INSERT INTO `project_pdf` (`project_name`, `pdf_doc`)
                  VALUES(:project_name, :pdf_doc);"
;

& nbsp; & nbsp; $ stmt = $ pdo-> Chuẩn bị ($ insert_sql); & nbsp; & nbsp; $ STMT-> BINDPARAM (': Project_Name', $ Project_Name); & nbsp; & nbsp; $ stmt-> bindparam (': pdf_doc', $ pdf_blob, pdo :: param_lob);$stmt = $pdo->prepare($insert_sql);
    $stmt->bindParam(':project_name', $project_name);
    $stmt->bindParam(':pdf_doc', $pdf_blob, PDO::PARAM_LOB);

& nbsp; & nbsp; if ($ stmt-> exec () === false) {& nbsp; & nbsp; & nbsp; & nbsp; echo'could không lưu thông tin vào cơ sở dữ liệu '; & nbsp; & nbsp; } khác {& nbsp; & nbsp; & nbsp; & nbsp; echo'information đã lưu '; & nbsp; & nbsp; }} Catch (pDoException $ e) {& nbsp; & nbsp; Echo'database lỗi '. $ e-> getMessage ().' trong '. $ e-> getfile (). & nbsp; & nbsp; & nbsp; & nbsp; ':'. $ e-> getLine (); & nbsp; & nbsp; }if ($stmt->execute() === FALSE) {
        echo 'Could not save information to the database';
    } else {
        echo 'Information saved';
    }
} catch (PDOException $e) {
    echo 'Database Error '. $e->getMessage(). ' in '. $e->getFile().
        ': '. $e->getLine();   
}

Lưu ý: Nói chung, nó không phải là một thông lệ tốt đối với BLOB5 bất kỳ loại thông tin lỗi cơ sở dữ liệu nào cho trình duyệt. Thay vào đó, lỗi nên được ghi vào tệp nhật ký. Tuy nhiên, với mục đích của bài đăng trên blog này như một trải nghiệm học tập, tôi đã tìm ra bất kỳ trường hợp ngoại lệ nào có thể phát sinh trong khối INTEGER1.: It is generally not a good practice to BLOB5 any sort of database error information to the browser. Errors should be written to a log file instead. However, for the purpose of this blog post as a learning experience, I BLOB5 out any exceptions that may arise in the INTEGER1 block.


Sử dụng biểu mẫu để lưu trữ .pdf trong cột blob mysql với PHP

Hãy để thử dùng biểu mẫu và mã PHP để xác minh các tác phẩm tải lên. Dưới đây là một tệp .pdf mẫu đơn giản mà tôi đã tạo để chạy demo:

Hướng dẫn can you store pdf in mysql? - bạn có thể lưu trữ pdf trong mysql không?
Nội dung của tài liệu samplepdf.pdf để tải lên với biểu mẫu.

Xem ảnh chụp màn hình này trong đó tôi điền vào trường ‘Tên dự án với tên dự án đầu tiên chung và đính kèm tệp SimplePDF.pdf:

Hướng dẫn can you store pdf in mysql? - bạn có thể lưu trữ pdf trong mysql không?
Đã điền vào biểu mẫu web với tệp đính kèm PDF để tải lên.

Khi nhấp vào nút ‘Gửi, thông tin được lưu trữ thành công trong cơ sở dữ liệu và thông báo thành công được hiển thị trong trình duyệt:

Hướng dẫn can you store pdf in mysql? - bạn có thể lưu trữ pdf trong mysql không?
Thông báo được hiển thị trong trình duyệt sau khi tải lên PDF thành công.

Dưới đây là dữ liệu được lưu trong bảng cơ sở dữ liệu MySQL từ tải lên thành công thông qua biểu mẫu web của chúng tôi và mã PHP:

Hướng dẫn can you store pdf in mysql? - bạn có thể lưu trữ pdf trong mysql không?
Bảng Project_PDF với PDF được chèn và tên dự án.

Nó hoạt động !!!

Trong bài đăng trên blog tiếp theo, tôi sẽ đề cập đến cách truy xuất tệp .pdf từ cơ sở dữ liệu và hiển thị nó trong trình duyệt. Nếu bạn thấy bất cứ điều gì trong mã mà tôi có thể cải thiện hoặc bất kỳ sai lầm nào, vui lòng cho tôi biết qua phần bình luận bên dưới.

Đọc PHP/MySQL bổ sung

Hãy chắc chắn và truy cập các bài đăng trên blog khác mà tôi đã viết trên PHP và MySQL:

  • Phương thức php pdo lastInsertid () với các ví dụ trong mysql
  • Bắt đầu phối cảnh về mảng PHP
  • Sắp xếp các mảng kết hợp trong PHP với Array_Multisort () - Học tập mới
  • Thả xuống HTML động với PHP và MySQL

Giống như những gì bạn đã đọc? Xem bất cứ điều gì không chính xác? Hãy bình luận bên dưới và cảm ơn vì đã đọc !!!

Lời kêu gọi hành động!

Cảm ơn bạn đã dành thời gian để đọc bài viết này. Tôi thực sự hy vọng bạn phát hiện ra một cái gì đó thú vị và khai sáng. Vui lòng chia sẻ những phát hiện của bạn ở đây, với một người khác mà bạn biết ai cũng sẽ nhận được giá trị tương tự từ đó.

Truy cập trang dự án danh mục đầu tư để xem bài đăng trên blog/văn bản kỹ thuật tôi đã hoàn thành cho khách hàng.Portfolio-Projects page to see blog post/technical writing I have completed for clients.

Để nhận thông báo qua email (không bao giờ spam) từ blog này (văn xuôi của Digital Digital Owl) cho các bài đăng trên blog mới nhất khi chúng được xuất bản, vui lòng đăng ký (của ý định của riêng bạn) bằng cách nhấp vào nút 'Nhấp để đăng ký!' Trang chủ! .

Hãy chắc chắn và truy cập trang Best Best Of cho một bộ sưu tập các bài đăng trên blog tốt nhất của tôi.“Best Of” page for a collection of my best blog posts.


Josh Otwell có một niềm đam mê để nghiên cứu và phát triển như một nhà phát triển và blogger SQL. Các hoạt động yêu thích khác tìm thấy anh ta với mũi được chôn trong một cuốn sách tốt, bài báo hoặc dòng lệnh Linux. Trong số đó, anh chia sẻ tình yêu của các trò chơi game nhập vai, đọc tiểu thuyết giả tưởng và dành thời gian với vợ và hai cô con gái.

Tuyên bố miễn trừ trách nhiệm: Các ví dụ được trình bày trong bài đăng này là những ý tưởng giả thuyết về cách đạt được các loại kết quả tương tự. Chúng không phải là giải pháp tốt nhất. Phần lớn, nếu không phải tất cả, các ví dụ được cung cấp, được thực hiện trên một môi trường phát triển/học tập cá nhân và không nên được coi là chất lượng sản xuất hoặc sẵn sàng. Mục tiêu và nhu cầu cụ thể của bạn có thể khác nhau. Sử dụng những thực hành có lợi nhất cho nhu cầu và mục tiêu của bạn. Ý kiến ​​là của riêng tôi.

Nhiều cách tôi có thể giúp

  • Bắt đầu một blog? Tôi sử dụng WordPress cho blog văn xuôi OWL Digital Owl. Hãy để cả hai tiết kiệm tiền cho các kế hoạch được cung cấp. 💸Digital Owl’s Prose blog. Let’s both save money on the plans offered. 💸
  • Nhận thương hiệu, sản phẩm hoặc dịch vụ của bạn sự chú ý mà nó xứng đáng với vị trí quảng cáo được phân loại giá cả phải chăng trong bản tin OpenLamptech.OpenLampTech newsletter.
  • Cần lưu trữ cho ứng dụng web tiếp theo của bạn hoặc trang web WordPress? Tôi đánh giá cao Hostinger và sử dụng chúng để lưu trữ trang web câu cá bass thích hợp của tôi. Dịch vụ là không ai sánh kịp và họ cung cấp SSL miễn phí.
  • 🔒5 Sự thật tôi đã nhận ra như một nhà phát triển tự học

Tiết lộ: Một số dịch vụ và liên kết sản phẩm trong bài đăng này là các liên kết liên kết. Không có chi phí bổ sung cho bạn, nếu bạn mua hàng bằng cách nhấp qua một trong số họ, tôi sẽ nhận được một khoản hoa hồng.: Some of the services and product links in this post are affiliate links. At no additional cost to you, should you make a purchase by clicking through one of them, I will receive a commission.

Bản tin cho các nhà phát triển PHP và MySQL

Nhận một bản sao của Sách điện tử của tôi, 10 Lời khuyên của MySQL cho mọi người, hoàn toàn miễn phí khi bạn đăng ký nhận bản tin OpenLamptech.absolutely free when you subscribe to the OpenLampTech newsletter.

Bạn có thể lưu trữ PDF trong SQL không?

Thay vào đó, loại bảng này được gọi là bảng tệp.Sử dụng bảng tệp, bất kỳ tài liệu hoặc pdf nào hoặc cho vấn đề đó, bất kỳ tệp nào cũng có thể được lưu trữ trong máy chủ SQL.any documents or PDF or for that matter any file can be stored in the SQL Server.

PDF có thể được lưu trữ trong cơ sở dữ liệu không?

Các tệp PDF là dữ liệu không cấu trúc hoặc bán cấu trúc, điều đó có nghĩa là chúng không có lược đồ cố định.Điều này có nghĩa là nó có thể là một thách thức để lưu trữ nội dung tệp PDF trong cơ sở dữ liệu SQL truyền thống.Tuy nhiên, cơ sở dữ liệu NoQuery là lý tưởng để lưu trữ nội dung tệp PDF vì nó không yêu cầu lược đồ được xác định trước.a NoSQL database is ideal for storing PDF file contents because it doesn't require a predefined schema.

Chúng ta có thể lưu trữ tài liệu trong MySQL không?

Để sử dụng MySQL làm cửa hàng tài liệu, bạn sử dụng các tính năng của máy chủ sau: X plugin cho phép máy chủ MySQL giao tiếp với các máy khách bằng giao thức X, đây là điều kiện tiên quyết để sử dụng MySQL làm cửa hàng tài liệu.Plugin X được bật theo mặc định trong máy chủ MySQL kể từ MySQL 8.0.

PDF có thể được lưu trữ dưới dạng blob không?

PDFS có thể được tải từ các tệp, luồng và mảng nhị phân từ- và được lưu.Tất cả đều có thể làm việc với lưu trữ blob.All of which can work with blob storage.