2012-11-05 99 views
0

我有一個MySQL數據庫與一個表,其具有以下字段:存儲分貝URL不回波圖像

txtProductBowlImage:例如, 「C:\ BowlPhotos \大拇指\ 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並把它在回聲聲明 這個URL使用「\」數據中的分隔符。 2:將實際文本路徑和文件名的樣本嵌入到echo語句中 此URL使用url中的'/'分隔符。 3:嵌入唯一的文件名,沒有路徑,在echo語句

當我運行它,我得到以下的輸出:

enter image description here

回聲#1 &#2產生的圖標,回聲#3在與php相同的文件夾中顯示圖像的本地副本。

由此看來,它是未被使用的路徑,無論是'\'還是'/'分隔符。

我假設'\'可能被看作是一個逃生,但爲什麼不與'/'的網址工作?

回答

0

OK,與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不需要「文件:///」本地文件...

而且,我也要提,這是爲了只在我的本地服務器上運行 - 不在網上。這只是爲了我自己的使用,以跟蹤我製作和銷售的木碗。

再一次,非常感謝喬恩......

1

所有下面是錯誤的看到,因爲"Linking to local resources is disabled in all modern browsers due to security restrictions"

鏈接到你使用的格式本地圖像0​​

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

您可以替換着反斜槓斜槓使用

$img = str_replace('\\', '/', $row['txtProductBowlImage']); 
您可以添加和路徑 周圍的單引號,像這樣

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

加上雙引號,你可以跳過點操作字符串追加 和使用

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

美元$img將被識別爲一個變量

+0

我看到 - 做出了改變,但它仍然不顯示圖像,只是圖標。我甚至試着迴應你展示的HTML,這也是同樣的事情...... – Stephen

+0

我正在使用Firefox - 在IE和Chrome中嘗試這種方法 – Stephen

+0

嘗試在路徑前添加'file:///'。 因此它的 但是,你知道路徑是本地文件?只有在該位置有圖像的您才能看到它。 – DrJonOsterman

0

它試圖從本地計算機上獲取文件。所以你必須運行一個web服務器¶PHP

你可能試圖讀取服務器沒有接入的圖像。

嘗試將文件放在與你的HTML或PHP文件

+0

並使用相對於您的web服務器根目錄的路徑而不是硬驅動器 – MadeInDreams

+0

是的,終於沉入... – Stephen