LAMP HTML / PHP无法加载图片

时间:2015-08-19 20:38:26

标签: php html mysql mysqli

我正在创建一个电影数据库,我有一个Python脚本可以下载电影海报(和信息)并将它们存储在一个文件夹中。例如,/var/www/html/images

我还有一个PHP文件,根据ID显示每部电影的唯一页面。例如,有一个列表页面,用户点击一部电影,然后转到localhost/movielist.php?id=3等。

到目前为止,电影信息显示得非常完美。但是,图像无法加载。

在我的python脚本中,我将电影海报图像保存为电影的名称,所以如果我有海底总动员的海报,文件名将为Finding Nemo.jpg。它保存得很好,我可以查看文件夹中的图像。

问题是图像不会显示在我的PHP页面上。

这是我文件中的PHP代码:

<?php

$username="root"; $password="12345"; $database="videos";

$con = mysqli_init();
mysqli_options($con, MYSQLI_OPT_LOCAL_INFILE, true);
mysqli_real_connect($con, "localhost", $username, $password, $database);

mysqli_select_db($database);

if(isset($_GET["id"])){
  $id = $_GET["id"];
} else {
  require("listFull.php");
}

$res = mysqli_query($con, "SELECT id, title, yr, genre, plot, rating FROM films WHERE id = " . $id);

$movItems = array("Title" => "title", "Year" => "yr", "Genre" => "genre", "Plot" => "plot", "Rating" => "rating");

while($row = mysqli_fetch_array( $res )){

  foreach($movItems as $k => $el){
    echo "<h3>" . $k . "</h3>";
    echo "<p>" . $row[$el] . "</p>";
  }
  echo "<img src='/var/www/html/images/".$row['title'].".jpg'>";
}
?>

这将根据页面的ID获取行/电影的信息并显示它。图像文件夹中的图像名称与数据库中的电影名称相同。

如何显示图像?

2 个答案:

答案 0 :(得分:3)

你的问题是img标签。首先,标记格式错误,开头的<缺失。

其次,您不应该使用/ var / www / html /作为图像路径,因为该目录仅在localhost中可见。如果你想公开它们,你必须提供正确的网址,如www.mysite.com/images/Finding%20Nemo.jpg。

最后,注意文件&#39; name:在http请求中你可以使用空格和其他特殊字符(在上面的例子中我用%20替换了空格)所以一定要替换它们。

答案 1 :(得分:3)

问题可能出在您的图像路径上,这应该是相对于Web根目录,而不是Web服务器上的实际路径。因此,例如,如果您的Web根目录是/ var / www / html,并且您的图像存储在/ var / www / html / images中,那么您的图像路径应为:

echo "<img src='/images/".$row['title'].".jpg'>";