我在这里遇到一些问题,希望有人能帮助我。不幸的是,我还没有找到解决方案,所以你是我最后的希望。
我将图片上传到我的数据库,但我无法显示它。我得到的是这个图标,当图像无法找到或加载,但我的数据库充满了图片: - /
这是我的PHP代码:
<?php
$dbhost = "localhost";
$dbuser = "DBConnector";
$dbpassword = "root";
$db = "phplogin";
$b = $_POST['bildbestaetigen'];
if(isset($b)){
if(getimagesize($_FILES['bild']['tmp_name'])== FALSE)
{
echo "Choose a picture.";
}
else
{
$image= addslashes($_FILES['bild']['tmp_name']);
$name = addslashes($_FILES['bild']['name']);
$image= file_get_contents($image);
$image= base64_encode($image);
saveimage($name,$image);
}
}
displayimage();
function saveimage ($name,$image){
$link = mysqli_connect("localhost","root","") or die("Verbindung zur Datenbank konnte nicht hergestellt werden!");
mysqli_select_db($link,"phplogin") or die ("kann nich finden ");
$result= mysqli_query($link, "insert into bilder (name,bild) values ('".$name."','".$image."')");
if($result)
{
echo "Image uploaded";
}
else
{
echo "<br/> Image not uploaded";
}
}
function displayimage(){
$link = mysqli_connect("localhost","root","") or die("Verbindung zur Datenbank konnte nicht hergestellt werdengjghghghh");
mysqli_select_db($link,"phplogin") or die ("kann nich finden ");
$result = mysqli_query($link,"SELECT * from bilder");
while( $row = mysqli_fetch_array($result));
{
echo '<img height="300" width="300" src="data:bild;base64,'.$row[2].' ">';
}
mysqli_close($link);
}
?>
我没有运气就尝试了很多东西。
我希望有人可以帮助我!
答案 0 :(得分:0)
在PHP上传时使用此W3Schools tutorial。如注释中所述,将图像路径保存在数据库中,而不是文件本身,这可能需要blob数据类型,并且可以非常快速地使数据库膨胀。
为此,通过使用$ _FILES数组指定目标文件夹(确保文件夹存在)并使用move_uploaded_file,将用户选择的文件从HTML表单上传到您的网络服务器上作为物理文件()函数:
$targetfile = "uploads/" .basename($_FILES['bild'])
...
# FILE VALIDATION
...
move_uploaded_file($_FILES['bild']['tmp_name'], $targetfile)
然后,将此图像路径(文本字符串)保存到数据库中(假设这里bild是文本数据类型):
insert into bilder (name,bild) values ('".$name."','".$targetfile."')
最后,正如您在从数据库表中获取记录之前所做的那样,并在html的img标记的src属性中回显图像路径(顺便过滤SQL查询到特定用户或图像ID,因为多个记录可能会输出):< / p>
echo '<img height="300" width="300" src="'.$row[2].'">';
请记住$ targetfile变量将包含图像位置的完整绝对路径。
答案 1 :(得分:0)
嗨,假设您已将图像正确上传到数据库中 和服务器内的某个文件夹。您可以使用此代码 打印出来。
<?php
//codes to connect to database and mysql query to get image name from table inside database...
$target_dir = "uploads/"; //path of where the images are store on your server
$image_name = $row_image['image_name']; //name of the image retrieved by mysql query
//print the image
echo "<img src=" . "'" . $target_dir . "/" . $image_name . "'" . "style='width:50px;height:50px'/>";
?>