2015-02-18 67 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。