我有一个带有表的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语句中仅嵌入文件名,无路径
当我运行它时,我得到以下输出:
回声#1&amp; #2生成图标,echo#3在与php相同的文件夹中显示图像的本地副本。
从这看来它是未使用的路径,使用'\'或'/'分隔符。
我认为'\'可能被视为逃避,但为什么带'/'的网址不起作用?
答案 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 ......