我在MySQL数据库中存储.JPG
图像时遇到问题。我使用下面的PHP代码将其存储到数据库中(以长blob格式)。我的代码似乎完全没有错误,并且除了图像仅存储在PHPMyAdmin上看起来像36 B大小的事实之外,所有内容似乎都应该起作用。
我希望图像更大(假设22 MB)。
<?php
require '../FirstWebsite/CommonFunctions.php';
DB_Connect();
$dblink = DB_Connect();
?>
<html>
<body>
<form method="post" enctype="multipart/form-data">
<br/>
<input type="file" name="selectImage">
<br/>
<input type="submit" name="submitImage" value="submit">
</form>
<?php
if(isset($_POST['submitImage'])){
if(getimagesize($_FILES['selectImage']['tmp_name'])==FALSE){
echo 'please select an actual image';
}
else{
$getImage = mysqli_real_escape_string($dblink, $_FILES['selectImage']['tmp_name']);
$name = mysqli_real_escape_string($dblink, $_FILES['selectImage']['name']);
$image = base64_encode($getImage);
saveImage($name, $image, $dblink);
}
}
function saveImage($name, $image, $dblink){
$query = "INSERT INTO trialtable2 (caption, actualpicture) VALUES ('$name','$image')";
$queryCheck = mysqli_query($dblink, $query);
if($queryCheck == TRUE){
echo '<br/> uploaded';
}
else{
echo '<br/> not uploaded';
}
}
?>
</body>
</html>
我做了什么
尝试上传.jpeg
.JPG
.jpg
(同样但仍然......).tif
.png
file_upload = on
(或其他)已经在php.ini
它是数据库表中的长blob类型
据说将图像存储在数据库中是不可取的,但这正是我目前正在使用的。
版本
我认为这个问题不是复制品,因为我无法在其他地方找到答案。如果我正在做错误的事情,请随时告诉我,因为我还是社区的新手。
答案 0 :(得分:3)
tmp_name
是文件的临时路径,这就是为什么你只看到几个字节。
addslashes
)。file_get_contents($_FILES['selectImage']['tmp_name'])
获取图像的实际内容以插入数据库。通常isn't a great idea将blob存储在数据库中,最好存储路径(就像你现在正在做的那样)。如果选择路径路径,则需要使用move_uploaded_file
之类的内容将文件移动到持久位置。