Hướng dẫn php code to upload file into mysql database - mã php để tải tệp lên cơ sở dữ liệu mysql

Tải lên tệp phía máy chủ có thể dễ dàng thực hiện bằng PHP. Có nhiều cách khác nhau để tải hình ảnh lên máy chủ và hiển thị hình ảnh trên trang web. Nói chung, trong một ứng dụng web động, hình ảnh được tải lên được lưu trữ trong thư mục của máy chủ và tên tệp được chèn vào cơ sở dữ liệu. Sau đó, các hình ảnh được lấy từ máy chủ dựa trên tên tệp được lưu trong cơ sở dữ liệu và hiển thị trên trang web.

Hình ảnh có thể được tải trực tiếp lên cơ sở dữ liệu mà không cần lưu trữ trên máy chủ. Nhưng nó sẽ tăng kích thước cơ sở dữ liệu và thời gian tải trang web. Vì vậy, nó luôn luôn là một ý tưởng tốt để tải hình ảnh lên máy chủ và lưu trữ tên tệp trong cơ sở dữ liệu. Trong hướng dẫn này, chúng tôi sẽ cho bạn thấy toàn bộ quá trình để tải lên và lưu trữ tệp hình ảnh trong cơ sở dữ liệu MySQL bằng PHP.upload and store the image file in MySQL database using PHP.

Mã ví dụ cho thấy quá trình triển khai chức năng tải lên tệp trong ứng dụng web và chức năng sau sẽ được thực hiện.

  • Hình thức HTML để tải lên hình ảnh.
  • Tải hình ảnh lên máy chủ bằng PHP.
  • Lưu trữ tên tệp trong cơ sở dữ liệu bằng PHP và MySQL.
  • Lấy hình ảnh từ cơ sở dữ liệu và hiển thị trong trang web.

Tạo bảng Datbase

Để lưu trữ tên tệp hình ảnh, một bảng cần được tạo trong cơ sở dữ liệu. SQL sau đây tạo bảng images với một số trường cơ bản trong cơ sở dữ liệu MySQL.

CREATE TABLE `images` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `file_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
 `uploaded_on` datetime NOT NULL,
 `status` enum('1','0') COLLATE utf8_unicode_ci NOT NULL DEFAULT '1',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Cấu hình cơ sở dữ liệu (dbconfig.php)

Tệp dbConfig.php được sử dụng để kết nối và chọn cơ sở dữ liệu MySQL. Chỉ định tên máy chủ cơ sở dữ liệu ($dbHost), tên người dùng ($dbUsername), mật khẩu ($dbPassword) và tên (

// Database configuration
$dbHost     "localhost";
$dbUsername "root";
$dbPassword "root";
$dbName     "codexworld";// Create database connection
$db = new mysqli($dbHost$dbUsername$dbPassword$dbName);// Check connection
if ($db->connect_error) {
    die(
"Connection failed: " $db->connect_error);
}
?>
0) theo thông tin đăng nhập MySQL của bạn.

// Database configuration
$dbHost     "localhost";
$dbUsername "root";
$dbPassword "root";
$dbName     "codexworld";// Create database connection
$db = new mysqli($dbHost$dbUsername$dbPassword$dbName);// Check connection
if ($db->connect_error) {
    die(
"Connection failed: " $db->connect_error);
}
?>

Tải lên mẫu HTML

Tạo biểu mẫu HTML để cho phép người dùng chọn tệp họ muốn tải lên. Đảm bảo thẻ chứa các thuộc tính sau.form> tag contains the following attributes.

  • method="post"
  • enctype="multipart/form-data"

Ngoài ra, hãy chắc chắn rằng thẻ chứa thuộc tính

// Database configuration
$dbHost     "localhost";
$dbUsername "root";
$dbPassword "root";
$dbName     "codexworld";// Create database connection
$db = new mysqli($dbHost$dbUsername$dbPassword$dbName);// Check connection
if ($db->connect_error) {
    die(
"Connection failed: " $db->connect_error);
}
?>
1.input> tag contains
// Database configuration
$dbHost     "localhost";
$dbUsername "root";
$dbPassword "root";
$dbName     "codexworld";// Create database connection
$db = new mysqli($dbHost$dbUsername$dbPassword$dbName);// Check connection
if ($db->connect_error) {
    die(
"Connection failed: " $db->connect_error);
}
?>
1 attribute.

<form action="upload.php" method="post" enctype="multipart/form-data">
    Select Image File to Upload:
    <input type="file" name="file">
    <input type="submit" name="submit" value="Upload">
form>

Hướng dẫn php code to upload file into mysql database - mã php để tải tệp lên cơ sở dữ liệu mysql

Biểu mẫu tải lên tệp sẽ được gửi đến tệp

// Database configuration
$dbHost     "localhost";
$dbUsername "root";
$dbPassword "root";
$dbName     "codexworld";// Create database connection
$db = new mysqli($dbHost$dbUsername$dbPassword$dbName);// Check connection
if ($db->connect_error) {
    die(
"Connection failed: " $db->connect_error);
}
?>
2 để tải hình ảnh lên máy chủ.

Tải tệp lên máy chủ và lưu trữ trong cơ sở dữ liệu (upload.php)

Tệp

// Database configuration
$dbHost     "localhost";
$dbUsername "root";
$dbPassword "root";
$dbName     "codexworld";// Create database connection
$db = new mysqli($dbHost$dbUsername$dbPassword$dbName);// Check connection
if ($db->connect_error) {
    die(
"Connection failed: " $db->connect_error);
}
?>
2 xử lý chức năng tải lên hình ảnh và hiển thị thông báo trạng thái cho người dùng.

  • 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.
  • Nhận tiện ích 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.pathinfo() function in PHP and validate the file format to check whether the user selects an image file.
  • Tải lên hình ảnh lên máy chủ bằng hàm move_uploaded_file () trong PHP.move_uploaded_file() function in PHP.
  • Chèn tên tệp hình ảnh trong cơ sở dữ liệu MySQL bằng PHP.
  • Trạng thái tải lên sẽ được hiển thị cho người dùng.
// Include the database configuration file
include 'dbConfig.php';
$statusMsg '';// File upload path
$targetDir "uploads/";
$fileName basename($_FILES["file"]["name"]);
$targetFilePath $targetDir $fileName;
$fileType pathinfo($targetFilePath,PATHINFO_EXTENSION);

if(isset(

$_POST["submit"]) && !empty($_FILES["file"]["name"])){
    
// Allow certain file formats
    
$allowTypes = array('jpg','png','jpeg','gif','pdf');
    if(
in_array($fileType$allowTypes)){
        
// Upload file to server
        
if(move_uploaded_file($_FILES["file"]["tmp_name"], $targetFilePath)){
            
// Insert image file name into database
            
$insert $db->query("INSERT into images (file_name, uploaded_on) VALUES ('".$fileName."', NOW())");
            if(
$insert){
                
$statusMsg "The file ".$fileName" has been uploaded successfully.";
            }else{
                
$statusMsg "File upload failed, please try again.";
            } 
        }else{
            
$statusMsg "Sorry, there was an error uploading your file.";
        }
    }else{
        
$statusMsg 'Sorry, only JPG, JPEG, PNG, GIF, & PDF files are allowed to upload.';
    }
}else{
    
$statusMsg 'Please select a file to upload.';
}
// Display status message
echo $statusMsg;
?>

Hiển thị hình ảnh từ cơ sở dữ liệu

Bây giờ chúng tôi sẽ truy xuất các hình ảnh đã tải lên từ máy chủ dựa trên tên tệp trong cơ sở dữ liệu và hiển thị hình ảnh trong trang web.

  • Bao gồm tệp cấu hình cơ sở dữ liệu.
  • Tìm nạp hình ảnh từ cơ sở dữ liệu MySQL bằng PHP.
  • Liệt kê hình ảnh từ thư mục tải lên của máy chủ.uploads directory of the server.
// Include the database configuration file
include 'dbConfig.php';// Get images from the database
$query $db->query("SELECT * FROM images ORDER BY uploaded_on DESC");

if(

$query->num_rows 0){
    while(
$row $query->fetch_assoc()){
        
$imageURL 'uploads/'.$row["file_name"];
?> <img src="echo $imageURL?>" alt="" /> }
}else{ 
?> <p>No image(s) found...p
> ?>

Hướng dẫn php code to upload file into mysql database - mã php để tải tệp lên cơ sở dữ liệu mysql

Tạo bộ sưu tập hình ảnh động với JQuery, PHP & MySQL

Sự kết luận

Ở đây chúng tôi đã chỉ ra cách hiệu quả nhất để thực hiện chức năng tải lên hình ảnh trên trang web. Bạn có thể dễ dàng mở rộng chức năng tải lên tệp theo yêu cầu của bạn. Để cung cấp giao diện người dùng tốt hơn, bạn có thể tích hợp chức năng tải lên tệp AJAX.

Tải lên nhiều hình ảnh bằng JQuery, Ajax và PHP

Bạn có muốn nhận trợ giúp thực hiện hoặc sửa đổi hoặc tăng cường chức năng của tập lệnh này không? Gửi yêu cầu dịch vụ trả phí

Nếu bạn có bất kỳ câu hỏi nào về kịch bản này, hãy gửi nó cho cộng đồng QA của chúng tôi - đặt câu hỏi

Làm thế nào chúng ta có thể lưu trữ tệp đã tải lên trong cơ sở dữ liệu bằng PHP?

Nhận tiện ích 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 lên hình ảnh lên máy chủ bằng hàm move_uploaded_file () trong PHP.Chèn tên tệp hình ảnh trong cơ sở dữ liệu MySQL bằng PHP.Trạng thái tải lên sẽ được hiển thị cho người dùng.

Làm cách nào để thêm một tệp vào cơ sở dữ liệu MySQL?

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ả về 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ó điều 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ị.place the file name. We also place a description of the file in the database. However, to display the file, all we need is the file name. Once we have this, all we have to do in the PHP code is specify the full path to this file, so that it can be displayed.

Chức năng PHP nào được sử dụng để tải lên các tệp?

Enctype = "Multipart/Form-data": Giá trị này đề cập đến loại nội dung của các tệp sẽ được chấp nhận để tải lên.Nó cũng chỉ ra loại mã hóa mà tập lệnh PHP sẽ sử dụng để tải lên.Giá trị dữ liệu đa dạng/hình thức cho phép chúng tôi tải lên các tệp bằng phương thức POST.