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. Show 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ư;
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;
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 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 Bản tin cho các nhà phát triển PHP và MySQLNhậ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:
Với Web HTML Dưới đây là mã nguồn HTML cho Web & 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"/> & 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> 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à 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 3 và gói tất cả các hoạt động cơ sở dữ liệu trong khối 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 & 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 & 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`) & 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); & 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->execute() === FALSE) { Xác minh nút được nhấp và tệp được đính kèmKhối 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 9 và BLOB 0 ):
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
3 cụ thể này, khối nếu giá trị đó không phải là 0 (không), thì chúng tôi BLOB 5 trong trình duyệt rằng có điều gì đó không ổn với việc tải lên tệp:
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à $ _FILESMảng liên kết
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 PHPCuộc gọi đến 3 này ________ 25 Thông báo trong khối BLOB 8 cho trình duyệt:
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 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 Vì chúng tôi đang giới thiệu đầu vào do người dùng cung cấp từ web
Chèn tệp .pdf vào cột blob mysql với PHPNếu cuộc gọi đến
Lưu ý: Nói chung, nó không phải là một thông lệ tốt đối với Sử dụng biểu mẫu để lưu trữ .pdf trong cột blob mysql với PHPHã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: 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: Đã đ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: 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: 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ổ sungHã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:
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
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à MySQLNhậ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.
|