存储的db url不回显图像

时间:2012-11-05 01:18:56

标签: php mysql jpeg

我有一个带有表的MySQL数据库,其中包含以下字段:

txtProductBowlImage:示例“C:\ BowlPhotos \ Thumbs \ MapleTi07-030tmb.jpg”

我想使用该字段中的数据来生成可以打印到文本文件的图像。

我读取数据然后尝试将其回显到屏幕上...我看到一个小图标,但没有图像。

以下是代码:

    <?php
 $con = mysql_connect("localhost","xxxxxxx","zzzzzzzzzzzzzzz");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("scwdb", $con);

$result = mysql_query("SELECT * FROM tblsplintersbowlinventory WHERE txtVenue = 'Shoreline'");

while($row = mysql_fetch_array($result))
  {
  echo $row['intProductID'] . " " . $row['txtProductBowlCode'] . " " . $row['txtProductBowlImage'] . "]";
  echo "<br />";
  echo "<br />";
  echo 'txtProductBowlImage: ' . $row['txtProductBowlImage'];
  echo "<br />";
  $img = $row['txtProductBowlImage'];
  echo '...............$img: ' . $img;
  echo "<br />";
  echo "<img src=" . $img . ">";
  echo "<img src='C://BowlPhotos//Thumbs//Ash07-013_btmb.jpg'>";
  echo "<img src='Ash07-013_btmb.jpg'>";
  echo "<br />";
  echo "==================";
  echo "<br />";
  }

mysql_close($con);
?> 

请注意,我尝试了3次来显示图片: 1:使用db中的url并将其放入echo语句中    此网址在数据中使用'\'分隔符。 2:在echo语句中嵌入实际文本路径和文件名的样本    此网址使用网址中的“/”分隔符。 3:在echo语句中仅嵌入文件名,无路径

当我运行它时,我得到以下输出:

enter image description here

回声#1&amp; #2生成图标,echo#3在与php相同的文件夹中显示图像的本地副本。

从这看来它是未使用的路径,使用'\'或'/'分隔符。

我认为'\'可能被视为逃避,但为什么带'/'的网址不起作用?

3 个答案:

答案 0 :(得分:1)

以下所有内容都显示为"Linking to local resources is disabled in all modern browsers due to security restrictions"

  

要链接到本地图片,请使用格式

<img src='file:///C:/path/to/image/pic.jpg'>
     

您可以使用

替换带有正斜杠的反斜杠
$img = str_replace('\\', '/', $row['txtProductBowlImage']);
     

现在,您可以在路径周围添加file:///和单引号   像这样

echo "<img src='file:///" . $img . "'>";
     

使用双引号,您可以跳过点运算符以追加字符串   并使用

echo "<img src='file:///$img'>";
     

美元$img将被识别为变量

答案 1 :(得分:0)

它会尝试从您的本地计算机获取文件。所以你必须运行一个有php的网络服务器

您可能正在尝试阅读服务器无法访问的图像。

尝试使用您的html或php文件放置文件

答案 2 :(得分:0)

好的,在JonOsterman非常感谢的帮助下,最终的工作代码是:

    <?php
$con = mysql_connect("localhost","root","Madge1938");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("scwdb", $con);

$result = mysql_query("SELECT * FROM tblsplintersbowlinventory WHERE txtVenue = 'Shoreline'");

while($row = mysql_fetch_array($result))
{
echo $row;
echo "<span>" . $row['intProductID'] . " " . $row['txtProductBowlCode'] . " " . $row['txtProductBowlImage'] . "</span>";
echo "<br />";
$img = $row['txtProductBowlImage'];
echo "<span> Original img: " . $img . " </span>";
$img = str_replace('\\', '/', $img);
echo "<br />";
$img = str_replace('C:/BowlPhotos/Thumbs/', 'Thumbs/', $img);
echo "<span>Folder img: " . $img . " </span>";
echo '<img src="' . $img . '">';
echo "<br />";
$img = str_replace('Thumbs/', '', $img);
echo "<span>Local img: " . $img . " </span>";
echo '<img src="' . $img . '">';
echo "<br />";
echo "<span>done</span><br />";
}

mysql_close($con);
?

有很多变化,但最大的惊喜是php无法打开不在同一文件夹或php文件的子文件夹中的文件夹!当我将整个文件夹移动到php文件夹的子文件时,上面的代码运行!

另外,如上所示,对于本地文件,HTML不需要“file:///”...

我应该提一下,这只能在我的本地服务器上运行 - 而不是在网络上运行。我自己用它来跟踪我制作和销售的木碗。

再一次,非常感谢Jon ......