使用PHP在数据库(MySql)中上传图像

时间:2015-08-13 16:40:33

标签: php mysql

请告诉我在数据库中存储图像的最佳方法是什么。

  1. 将图像存储到数据库中
  2. OR

    1. 将图像上传到文件夹并将图像路径保存到数据库中以便将其解压缩以供以后使用。
    2. 如果有人给我演示了一个表格,其中包含两个输入字段的文本和附加图像的选项,并提供用于将记录上传到数据库的SQL查询将帮助我理解很多。我对这个领域知之甚少。我在学习过程中。请帮助我

1 个答案:

答案 0 :(得分:0)

最常用的方法是将图像路径保存到数据库,将实际图像保存到目录。这只是我目前使用的演示。

HTML:

<form enctype="multipart/form-data" method="post" action="">
<input type="file" name="fileToUpload" id="fileToUpload">
</form>

PHP:

$target_dir = 'PATH/TO/SAVE/IT/TO/';
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);

// If Its Empty Throw Error
if (basename($_FILES["fileToUpload"]["name"]) == "") {
    // Error Code Here
    $uploadOk = 0;
}

$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

// Check if image file is a actual image or fake image
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
    $uploadOk = 1;
}else{
    // Throw Error Here
    $uploadOk = 0;
}

// Check if file already exists
if (file_exists($target_file)) {
    // Throw Error Here
    $uploadOk = 0;
}

// Check file size
if ($_FILES["fileToUpload"]["size"] > $max_image_size) {
    // Throw Error Here
    $uploadOk = 0;
}

// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" ) {
    // Throw Error Here
    $uploadOk = 0;
}

// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 1) {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        // DB Insert HERE
    }else{
        // Throw Error Here
    }
}

输出图像:

PHP:

function getUserImage() {
    $uid = $_SESSION['user'];   
    $query = "SELECT `image` FROM `users` WHERE `id` = ?"; 
    $params = array($uid); 
    $results = dataQuery($query,$params);
    return $results[0]['image'];
}

HTML:

<img src="images/users/<?php echo getUserImage(); ?>" />