从mysql中存储的路径显示图像

4

我已经将图片上传到文件夹中,并将路径存储到MySQL数据库中。路径已经成功存储,图像也已成功插入到文件夹中。但是我的问题是,当我从存储在数据库中的路径显示图像时,它无法显示。当我echo图像路径时,它会显示图像路径。我检查了浏览器设置,一切正常。以下是我的代码,请任何人帮忙。

$up=move_uploaded_file($_FILES['profile']['tmp_name'],dirname($_SERVER['DOCUMENT_ROOT']).'/htdocs/upload/image/'.$name);
$path = dirname($_SERVER['DOCUMENT_ROOT']).'/htdocs/upload/image/';
$location = $path . $_FILES['profile']['name'];
$ins=mysqli_query($con, "INSERT into image (url) values ('$location')");
echo 'image uploaded and stored';
echo "$location"; //It displays D:/xampp/htdocs/upload/image/Chrysanthemum.jpg
echo '<img width="250" height="250" src= "'.$location.'"/>';//It doesn't display anything.

1
使用相对路径。只需使用upload/image/作为路径。 - Murad Hasan
1
只将/uploads/image存储在您的数据库中,或者仅存储图像名称。 - uzaif
1
你正在传递图像的绝对路径。请尝试改为使用 upload/image/Chrysanthemum.jpg - mr_sudaca
您正在传递图像的物理路径。可以是图像的绝对 URL 路径或相对于文档根目录的路径。图像将使用 http:// 显示,而不是 D:/ - Pupil
2个回答

5

试试这个:

尝试使用相对路径而不是绝对路径。相对路径可以帮助您从任何服务器、任何目录运行脚本。

$path = 'upload/image/';
$location = $path . $_FILES['profile']['name'];

move_uploaded_file($_FILES['profile']['tmp_name'], $location);

$ins = mysqli_query($con, "INSERT into image (url) values ('$location')");
echo 'image uploaded and stored';
echo '<img width="250" height="250" src= "'.$location.'"/>';

注意:您需要在脚本运行的同一目录下拥有一个名为upload/image的文件夹。根据您的要求,您想从mysql中显示图像,但是没有这样做,因此您需要再次查询表格。

@Jebil,请将此标记为您的答案,以便其他人从中受益。 - Murad Hasan

0

嘿,你可以使用以下代码获取上传图像在目录中的路径,这段代码将显示你的图像

$location ='/upload/image/'. $_FILES['profile']['name']; // write your project dir name before upload if "upload is not your project dir"

$ins=mysqli_query($con, "INSERT into image (url) values ('$location')");
echo 'image uploaded and stored';

echo '<img width="250" height="250" src= "'.$location.'"/>';//It doesn't display anything.


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接