2015-02-18 57 views
-1

對不起,也許這對於某些人來說可能很簡單,但我遇到了很多麻煩。問題是我在MySQL的數據庫中存儲了一些圖像,我可以在我的頁面中顯示它們,但它是通過使用php腳本打印它們的,但是我的問題是: *我必須在一張表中發送電子郵件有結構,也就是說,我有所有的組件,如標題,消息和一些圖像,我可以調用這個組件,但我想獲取我存儲的圖像的URL,因爲我不能只是在電子郵件結構中打印圖像,這就是我想:PHP中存儲的圖像的URL

$link = mysqli_connect("host","user","pass"); 
    mysqli_select_db($link, "db"); 
$result1 = mysqli_query($link , "select binaryFile from img where idImg='$idIMG' "); 

while($row=mysqli_fetch_array($result1)) 
{ 
    $imgp = $row["binaryFile"]; 
} 
  • 我讀的形象,但我要的是它的URL。如果有人能幫助我,我會很高興與你。謝謝!
+1

如果您將圖像本身存儲在數據庫中而不是其位置,則沒有可以獲取的網址。 – developerwjk 2015-02-18 00:13:54

+0

那麼,有沒有可能得到的網址? – Pepe 2015-02-18 00:16:47

+1

這個url需要是一個url,指向一個從db讀取文件的頁面,並將它作爲一個二進制文件如'example.com/image.php?id=imageid'服務器...要麼,要麼提取文件從數據庫到文件系統(在htdocs下,以便他們可以通過url到達),然後將位置存儲在數據庫中,以便您可以直接使用url ... – developerwjk 2015-02-18 00:18:57

回答

0

如果您以二進制格式將數據存儲在數據庫中,那麼將不會有它們的url。

但是,你說你打印他們的PHP腳本。您可以使用該腳本作爲URL(假設其虛擬主機)。將其設置爲代理並將該腳本的網址用作網址。因此,像:

<?php 

if (!isset($_GET['image_id'])) 
{ 
    header("HTTP/1.1 404 Not Found"); 
    die; 
} 

$link = mysqli_connect("host","user","pass", "db"); 

$safe_id = $db->real_escape_string($idIMG); 
$result = $link->query("SELECT binaryFile FROM img WHERE idImg='". $safe_id ."' LIMIT 1"); 

if ($result->num_rows == 0) 
{ 
    header("HTTP/1.1 404 Not Found"); 
    die; 
} 

$row = $result->fetch_assoc(); 
$image_data = $row['binaryFile']; 

header('Content-Type: image/jpg'); 

// Print image data here directly out to the browser 
//... 

?> 

如果你命名這個腳本「image_proxy.php」,那麼你可以使用「http://your.domain/image_proxy.php?image_id=12345」當你在電子郵件中包含的URL。