使用PHP在MySQL中存储的图像的URL


URL of an stored image in MySQL with PHP

对不起,也许对一些人来说这可能很简单,但我在做这件事时遇到了很多麻烦。问题是我在MySQL的数据库中存储了一些图像,我可以在页面中显示它们,但这是通过用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。

但是,您说您正在使用php脚本打印它们。您可以将该脚本用作URL(假设它是网络托管的)。将其设置为代理,并使用该脚本的url作为您的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。