请告诉我在数据库中存储图像的最佳方法是什么。
OR
如果有人给我演示了一个表格,其中包含两个输入字段的文本和附加图像的选项,并提供用于将记录上传到数据库的SQL查询将帮助我理解很多。我对这个领域知之甚少。我在学习过程中。请帮助我
答案 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(); ?>" />