从数据库显示图像

现在我们将从数据库中检索文件名,并从网页上的服务器显示相应的图像。

  • 包括数据库配置文件以连接和选择MySQL数据库。
  • 使用PHP从MySQL数据库获取图像。
  • 从服务器(上载/)中检索图像并在网页上列出。
<?php
//Include the database configuration file
include_once 'dbConfig.php';
//Get images from the database
$query = $db->query("SELECT * FROM images ORDER BY id DESC");
if($query->num_rows > 0){
    while($row = $query->fetch_assoc()){
        $imageURL = 'uploads/'.$row["file_name"];
?>
    <img src="<?php echo $imageURL; ?>" alt="" />
<?php }
}else{ ?>
    <p>No image(s) found...</p>
<?php } ?>

文件上传表单HTML

使用输入字段创建HTML表单,以允许用户选择要上载的图像。

<form>标记必须包含以下属性。

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

<input>标记必须包含'type =“文件”'和'多个'属性。

<form action="" method="post" enctype="multipart/form-data">
    Select Image Files to Upload:
    <input type="file" name="files[]" multiple >
    <input type="submit" name="submit" value="UPLOAD">
</form>

创建数据库表

需要在数据库中创建表以存储图像文件名。
以下SQL使用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;

数据库配置(dbconfig.php)

“dbconfig.php”文件用于连接和选择MySQL数据库。
指定数据库主机名('$dbhost'),用户名('$dbusame'),密码('$dbpassword'),以及根据mysql凭据的名称('$dbname')。

<?php
//Database configuration
$dbHost     = "localhost";
$dbUsername = "root";
$dbPassword = "root";
$dbName     = "onitroad";
//Create database connection
$db = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName);
//Check connection
if ($db->connect_error) {
    die("Connection failed: " . $db->connect_error);
}
?>
使用PHP和MySQL上传多个图像并存储在数据库中

PHP中的文件上传是Web应用程序最常用的功能。

可以使用PHP轻松上载单个文件或者多个文件。
PHP提供了一种快速而简单的方法来实现服务器端文件上传功能。
通常,在Web应用程序中,文件将上载到服务器,文件名存储在数据库中。
稍后将根据存储在数据库中的文件名从服务器检索文件。

在大多数情况下,一次上传单个图像。
但有时我们需要一次上传多个图像。
在本教程中,我们将展示如何在PHP中上传多个图像并将图像存储在MySQL数据库中。
多个图像上传允许用户一次选择多个文件并在单击中将所有文件上传到服务器。

我们的示例代码将实现以下功能以演示PHP中上传的多个图像。

  • HTML表单选择多个图像。
  • 使用PHP将图像上传到服务器。
  • 使用PHP和MySQL存储数据库中的文件名。
  • 从数据库中检索图像并在网页上显示。

在PHP中上传多个文件(upload.php)

“upload.php”文件处理多个镜像上载功能,并显示给用户的上载状态。

  • 包括数据库配置文件以连接和选择MySQL数据库。
  • 使用PHP中的PathInfo()函数获取文件扩展,并检查用户是否仅选择图像文件。
  • 使用PHP中的MOVE_UPLOODED_FILE()函数将图像上传到服务器。
  • 使用PHP和MySQL在数据库中插入图像文件名。
  • 显示向用户的上传状态。
<?php 
if(isset($_POST['submit'])){ 
    //Include the database configuration file 
    include_once 'dbConfig.php'; 

    //File upload configuration 
    $targetDir = "uploads/"; 
    $allowTypes = array('jpg','png','jpeg','gif'); 

    $statusMsg = $errorMsg = $insertValuesSQL = $errorUpload = $errorUploadType = ''; 
    $fileNames = array_filter($_FILES['files']['name']); 
    if(!empty($fileNames)){ 
        foreach($_FILES['files']['name'] as $key=>$val){ 
            //File upload path 
            $fileName = basename($_FILES['files']['name'][$key]); 
            $targetFilePath = $targetDir . $fileName; 

            //Check whether file type is valid 
            $fileType = pathinfo($targetFilePath, PATHINFO_EXTENSION); 
            if(in_array($fileType, $allowTypes)){ 
                //Upload file to server 
                if(move_uploaded_file($_FILES["files"]["tmp_name"][$key], $targetFilePath)){ 
                    //Image db insert sql 
                    $insertValuesSQL .= "('".$fileName."', NOW()),"; 
                }else{ 
                    $errorUpload .= $_FILES['files']['name'][$key].' | '; 
                } 
            }else{ 
                $errorUploadType .= $_FILES['files']['name'][$key].' | '; 
            } 
        } 

        if(!empty($insertValuesSQL)){ 
            $insertValuesSQL = trim($insertValuesSQL, ','); 
            //Insert image file name into database 
            $insert = $db->query("INSERT INTO images (file_name, uploaded_on) VALUES $insertValuesSQL"); 
            if($insert){ 
                $errorUpload = !empty($errorUpload)?'Upload Error: '.trim($errorUpload, ' | '):''; 
                $errorUploadType = !empty($errorUploadType)?'File Type Error: '.trim($errorUploadType, ' | '):''; 
                $errorMsg = !empty($errorUpload)?'<br/>'.$errorUpload.'<br/>'.$errorUploadType:'<br/>'.$errorUploadType; 
                $statusMsg = "Files are uploaded successfully.".$errorMsg; 
            }else{ 
                $statusMsg = "Sorry, there was an error uploading your file."; 
            } 
        } 
    }else{ 
        $statusMsg = 'Please select a file to upload.'; 
    } 

    //Display status message 
    echo $statusMsg; 
} 
?>
日期:2020-06-02 22:16:00 来源:oir作者:oir