PHP - 将图像 URL 转换为 SQL BLOB

PHP - Convert Image URL to SQL BLOB

我正在使用 PHP 编程并使用 XAMPP 用于 ApacheMySQL.

我已经搜索并尝试了两天将图像 URL 转换为二进制变量的方法。在此过程之后,我尝试将其作为 BLOB 插入 SQL 数据库 table.

我尝试了几种方法(下面不包括),例如base64()file_get_contents()保存图像文件甚至cURL...

这是 SQL 数据库 table 结构的图片:

这里是 "mind blowing psychedelic" PHP 代码:

<?php 
    // APPROACH #1
    $blob = file_get_contents('http://www.domainname.com/random/page/IMAGE.png');

    // APPROACH #2
    $bin = base64_encode($blob);

    // INSERT INTO QUERY
    $stmt = $db->prepare("INSERT INTO imagezzz (id_link, imagez) VALUES (?,?)");

    // APPROACH #1
    $stmt->bind_param("ib", $number, $blob);

    // APPROACH #2
    $stmt->bind_param("ib", $number, $bin);

    $stmt->execute();
?>

当执行查询时,它抛出没有错误。实际上执行了 INSERT 查询并添加了 新 table 行 。第一和第二个字段(id[int]和id_link[int])有数据,但第三个字段(imagez [BLOB]) 为空。

我在 phpMyAdmin 中执行了 SQL INSERT QUERY(通过上传本地图像),它工作正常...

如果您可以使用 file_get_contents 获取文件,这应该可行:

$blob = file_get_contents('http://www.domainname.com/random/page/IMAGE.png');
print "Image is " . strlen($blob) . " bytes long\n";
$bin  = base64_encode($blob);
$estimate = round(strlen($blob)/0.75);
print "Blob is " . strlen($bin) . " bytes long (expecting about {$estimate}\n";
$stmt = $db->prepare("INSERT INTO imagezzz (id_link, imagez) VALUES (?,?)");
$stmt->execute([ $number, $bin ]);