Cách tải lên tệp pdf trong cơ sở dữ liệu mysql bằng php

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 đang làm việc với một yêu cầu đối với bảng điều khiển báo cáo ứng dụng web ngăn xếp LAMP mà tôi cần lưu trữ — và cuối cùng — truy xuất một. file PDF. Tôi đã đọc ở một số nơi [cuốn sách tuyệt vời này là một nguồn 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 chứ không phải trên 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à những thứ tương tự. Trong bài đăng trên blog này, tôi trình bày cách tôi…

Thay vào đó, chúng tôi chỉ cần tải tệp lên máy chủ. Và chúng tôi đặt tên tệp vào cơ sở dữ liệu. Sau đó, chúng tôi chỉ định đường dẫn đầy đủ đến tệp để chúng tôi có thể truy cập tệp

Theo quan điểm của tôi, điều này đơn giản hơn nhiều. Tuy nhiên, nếu bạn đang muốn thực sự chèn tệp vào cơ sở dữ liệu bằng cách sử dụng blob, thì chúng tôi chưa tạo hướng dẫn về điều này. Và bạn có thể sẽ thoát khỏi trang này

Tuy nhiên, nếu chúng ta muốn hiển thị một bảng với các tệp được lưu trữ dựa trên cơ sở dữ liệu MySQL, thì hướng dẫn này thực sự hữu ích để chỉ cho bạn cách thực hiện

Vì vậy, một lần nữa, với phương pháp này, tất cả những gì chúng ta phải làm là đặt tên tệp vào cơ sở dữ liệu MySQL. Sau đó, chúng tôi có thể sử dụng mã PHP để hiển thị tệp bằng cách chỉ định đường dẫn đầy đủ đến tệp đó

Đây là một cách đơn giản và dễ dàng hơn nhiều để thực sự tải các tệp lên cơ sở dữ liệu, cách này phức tạp hơn

Chúng tôi đã từng cho phép người dùng tải tệp lên trang web nhưng đã dừng do lo ngại về phần mềm độc hại

Để chèn tệp vào cơ sở dữ liệu MySQL, như đã giải thích trước đây, chúng tôi không thực sự đưa tệp vào cơ sở dữ liệu. Chúng tôi đặt các tệp trong một thư mục thông thường trên trang web của chúng tôi. Tôi đã tạo một thư mục tệp [hoặc thư mục] trên trang web của mình mà các tệp sẽ tải lên. Trong cơ sở dữ liệu MySQL, tất cả những gì bạn làm là đặt tên tệp. Chúng tôi cũng đặt một mô tả của tệp trong cơ sở dữ liệu. Tuy nhiên, để hiển thị tệp, tất cả những gì chúng ta cần là tên tệp. Khi chúng ta có cái này, tất cả những gì chúng ta phải làm trong mã PHP là chỉ định đường dẫn đầy đủ đến tệp này để nó có thể được hiển thị

Vì vậy, một lần nữa, chúng tôi tải tệp lên một thư mục trên trang web của chúng tôi. Chúng tôi không đặt tệp trực tiếp vào cơ sở dữ liệu MySQL. Chúng tôi tải nó lên một thư mục trên trang web của chúng tôi. Chúng tôi chỉ cần lấy tên tệp và đặt nó vào cơ sở dữ liệu MySQL. Sau đó, chúng tôi có đường dẫn hoàn chỉnh đến tệp trong mã của mình để chúng tôi có thể hiển thị và hiển thị nó

Vì vậy, nếu chúng tôi đang lưu một tệp có tên, thế chấp. pdf, chúng tôi lưu tên file đầy đủ, thế chấp. pdf

Chúng tôi sẽ đi qua điều này dưới đây

Trong phần trình diễn này, tôi sẽ sử dụng phpMyAdmin. Khi tạo bảng trong MySQL, chúng ta tạo 3 cột

Một cột là cột ID, cột này sẽ có mặt trong bất kỳ bảng MySQL nào. Cột này là duy nhất và phải được đặt thành tự động tăng. Nó đếm liên tục tăng 1 từ bất kỳ hàng dữ liệu mới nào được chèn vào. Vì vậy, nó bắt đầu từ 1. Nếu bạn chèn 5 hàng dữ liệu thì hàng thứ 5 sẽ có ID là 5. Mục đích của nó là nó độc đáo và nó cung cấp cho bạn cách sắp xếp các video mới tải lên theo thứ tự khi chúng được tải lên. Bạn cũng có thể làm điều này theo những cách khác. Nhưng đây có lẽ là cách dễ nhất để hiển thị các tệp theo thứ tự khi chúng được tải lên

Cột thứ hai mà tôi đã tạo là cột mô tả. Điều này chứa một mô tả của tập tin được nhập. Sau khi người dùng đặt mô tả của tệp vào hộp văn bản và tải tệp lên cùng với mô tả, mô tả của tệp đã nhập sẽ được chèn vào cột mô tả của bảng

Cột thứ ba và cột cuối cùng mà tôi đã tạo là cột tên tệp. Điều này giữ tên tập tin đầy đủ của tập tin. Vì vậy, nếu bạn đang tải lên một tệp có tên là bản ghi. txt, tên tệp đầy đủ được nhập vào cột tên tệp là bản ghi. txt

Dưới đây, bạn có thể thấy cấu trúc của bảng được tạo đóng vai trò là bảng tải tệp lên

Vì nó chứa thông tin tệp nên tôi đặt tên cho bảng là 'Tệp'. Bạn có thể xem hình ảnh cấu tạo của bảng bên dưới



Vì vậy, bạn có thể thấy cấu trúc của bảng trên

Cột ID có kiểu int [11]

Cột mô tả được đặt thành VARCHAR[100] để cho phép nó chứa nhiều ký tự. Đôi khi người dùng có thể muốn đưa vào một phần mô tả tốt về tệp, vì vậy chúng tôi cho phép tối đa 100 ký tự

Cột tên tệp được đặt thành VARCHAR[50] để cho phép tên tệp hơi dài

Lý do chúng tôi sử dụng VARCHAR cho tất cả các trường này là vì nó cho phép số lượng ký tự thay đổi. CHAR là một số tiền cố định. Bạn sẽ sử dụng CHAR khi mỗi lần tải lên có cùng số lượng ký tự. Đây sẽ là trường hợp của một số thứ, chẳng hạn như chữ viết tắt của tiểu bang, vì chúng đều có 2 ký tự. Trong trường hợp này, CHAR sẽ không hoạt động đối với bất kỳ trường nào

Tất nhiên, nếu bạn cần, hãy sửa đổi các thông số về số lượng để đáp ứng nhu cầu của bạn

Mã HTML

Vì vậy, bây giờ, hãy xem mã HTML cần thiết để tạo trình tải lên được thấy ở trên, cho phép các tệp được tải lên

Mã HTML được hiển thị bên dưới



Đoạn mã HTML ở trên tạo một biểu mẫu tải lên. Vì chúng tôi muốn trang này giữ tất cả thông tin thu được từ biểu mẫu, chúng tôi đặt hành động bằng "". Nếu chúng tôi muốn gửi thông tin đã nhập vào trình tải lên này đến một trang khác, chúng tôi sẽ chỉ định trang PHP đó. Nhưng vì chúng tôi muốn thông tin cho mã PHP sau này trên trang này, chúng tôi đặt hành động bằng không. Phương pháp là POST. Và để tải lên tệp, câu lệnh enctype="multipart/form-data" phải được nhập. Nếu không, tải lên tập tin sẽ không hoạt động

Dòng bên dưới tạo một hộp văn bản chứa mô tả của tệp. Nếu không có mô tả nào được nhập và người dùng nhấp vào nút Tải lên, câu lệnh "Phải nhập mô tả" được xuất ra

Sau đó, chúng tôi tạo một dòng cho phép tải lên tệp. Nếu không có tệp nào được nhập, câu lệnh "Vui lòng chọn tệp" được xuất ra

Sau đó, chúng tôi tạo một nút gửi, vì hầu hết mọi biểu mẫu đều cần. Chúng tôi cung cấp cho nó giá trị, "Tải lên", để Tải lên xuất hiện trên nút. Nếu không, nó sẽ chỉ gửi theo mặc định

Sau đó chúng tôi đóng biểu mẫu

Điều này kết thúc HTML cần thiết cho trang này

Mã PHP


Khối mã PHP đầu tiên

Có 3 khối mã PHP cần thiết

Khối đầu tiên được hiển thị bên dưới

Khối này dùng để tải tệp đã nhập vào thư mục, nơi chúng tôi sẽ lưu trữ tệp, trong trường hợp này là thư mục Tải lên/tệp/





Vì vậy, mã này lấy tệp mà người dùng đã nhập

Chúng tôi cũng lấy mô tả mà người dùng đã nhập của tệp và đặt nó vào biến $description

Chúng tôi chỉ định thư mục mà chúng tôi muốn tệp được tải lên. Trong trường hợp này, nó là thư mục Upload/files/. Nếu người dùng đã nhấp vào nút Tải lên mà không chỉ định tệp, câu lệnh "Vui lòng chọn tệp" được xuất ra. Nếu người dùng nhập một tệp, tệp sẽ được tải lên thư mục mà chúng tôi đã chỉ định thông qua hàm move_uploaded_file[]. Chức năng này tạo một tên tạm thời cho tệp tải lên và sau đó chuyển tệp vĩnh viễn vào thư mục chúng tôi chỉ định. Câu lệnh "Đã tải lên" sau đó được xuất ra

Điều này kết thúc khối mã PHP này


Khối mã PHP thứ hai

Khối mã PHP tiếp theo chèn dữ liệu vào bảng MySQL để lưu trữ. Chúng bao gồm mô tả của tệp và tên tệp của nó

Khối mã này được hiển thị bên dưới





Khối mã này thiết lập kết nối với cơ sở dữ liệu MySQL đang được sử dụng. Điều này yêu cầu người dùng, mật khẩu, máy chủ, cơ sở dữ liệu và tên bảng

Như đã nêu ở trên, một bảng MySQL đã được tạo bằng phpMyAdmin. Bảng này có 3 cột. ID, mô tả, tên tệp

Nếu hộp văn bản mô tả không trống, thì chúng tôi chèn vào bảng Tệp MySQL mô tả và tên tệp của tệp

Sau đó chúng tôi đóng cơ sở dữ liệu


Khối mã PHP thứ ba

Khối mã PHP tiếp theo hiển thị bảng với mô tả tệp và liên kết đến tệp thực tế





Vì vậy, một lần nữa, chúng tôi thiết lập kết nối với cơ sở dữ liệu MySQL chứa bảng Tệp

Chúng tôi truy vấn bảng chứa thông tin tệp

We then display the table with the html

tag.

Câu lệnh, while [$row = mysql_fetch_array[$result]] đưa ra một vòng lặp sao cho mọi hàng trong. Miễn là có các hàng, câu lệnh mysql_fetch_array[$result] sẽ đúng, vì vậy vòng lặp sẽ không bị thoát cho đến khi tất cả các hàng được xuất ra

Sử dụng tính năng $row['value'], chúng tôi có thể lấy tất cả thông tin từ mỗi cột cho mỗi hàng. Vì vậy, chúng tôi có được mô tả và tên tệp cho mỗi hàng, đại diện cho một tệp

Và điều này kết thúc tất cả mã cần thiết để xây dựng trình tải lên tệp hoạt động kết hợp với MySQL để lưu trữ các bảng tệp

Làm cách nào để tải lên tệp PDF bằng php MySQL?

Hàm move_uploaded_file[] dùng để tải tệp pdf lên máy chủ . Chúng tôi đang chuyển 2 giá trị, tên tệp tạm thời và thư mục nơi tệp sẽ được lưu trữ. Các tệp sẽ được lưu trữ trong thư mục “GeeksForGeeks/pdf/” mà chúng tôi đã tạo trước đó.

Làm cách nào để tải tệp lên cơ sở dữ liệu MySQL bằng php?

Tải lên tệp PHP .
Định cấu hình "php. ini" Tập tin. Trước tiên, hãy đảm bảo rằng PHP được định cấu hình để cho phép tải tệp lên. .
Kiểm tra xem tệp đã tồn tại chưa. Bây giờ chúng ta có thể thêm một số hạn chế. .
Kích thước tệp giới hạn. Trường nhập tệp trong biểu mẫu HTML của chúng tôi ở trên được đặt tên là "fileToUpload". .
Loại tệp giới hạn. .
Hoàn thành tải lên tệp PHP Script

Làm cách nào để tải lên nhiều tệp PDF trong cơ sở dữ liệu MySQL bằng php?

Tải lên nhiều tệp trong PHP [tải lên. .
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à kiểm tra xem người dùng chỉ chọn các tệp hình ảnh
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 để tải lên và hiển thị tệp PDF trong php?

Chủ Đề