使用php打印base64加密图像时图像损坏
我将imagea加密到base64中,然后将它们存储在数据库中。然后我使用PHP打印图像,但有时会得到损坏的图像。如果我将相同的代码放在HTML文件中,或者如果我多次刷新页面,那么它就会工作 这是我损坏的图像: 我的HTML如下所示: 注意:_encrypteddata_是我的加密图像,我不能在这里发布大量数据 它工作得很好,但有时它会显示一个具有相同数据的连续损坏的图像。它在浏览器或base64上有问题吗使用php打印base64加密图像时图像损坏,php,image,base64,Php,Image,Base64,我将imagea加密到base64中,然后将它们存储在数据库中。然后我使用PHP打印图像,但有时会得到损坏的图像。如果我将相同的代码放在HTML文件中,或者如果我多次刷新页面,那么它就会工作 这是我损坏的图像: 我的HTML如下所示: 注意:_encrypteddata_是我的加密图像,我不能在这里发布大量数据 它工作得很好,但有时它会显示一个具有相同数据的连续损坏的图像。它在浏览器或base64上有问题吗 我对所有图标都使用image/png。这会导致任何问题吗?我认为这是来自浏览器 注意:每
我对所有图标都使用image/png。这会导致任何问题吗?我认为这是来自浏览器 注意:每次加载页面时从数据库检索图像数据可能会很慢
尝试在文件系统中编写一个包含数据的图像文件,并在HTML中链接到此文件。它将更快、更健壮 我想这是来自浏览器 注意:每次加载页面时从数据库检索图像数据可能会很慢 尝试在文件系统中编写一个包含数据的图像文件,并在HTML中链接到此文件。它将更快、更健壮 我得到了这个解决方案
<img src='data:image/;base64,_encrypteddata_'/>
从我得到了这个解决方案
<img src='data:image/;base64,_encrypteddata_'/>
从基本上base64可以获得大量存储加密数据(尤其是图像)的内存,所以无论何时从数据库中获得少量的海量数据,都需要一些时间才能加载。有时,浏览器不会等待太多时间解密,以便您可以看到损坏的图像
您最好将图像存储在本地文件系统中,而不是存储到数据库中。这会加快你的进程
使用此代码将数据存储到本地文件系统
function get_image($image_url, $localPathToStore)
{
echo $url . "<br>" . $saveto;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
$raw = curl_exec($ch);
curl_close($ch);
if (file_exists($saveto)) {
unlink($saveto);
}
$fp = fopen($saveto, 'x');
fwrite($fp, $raw);
fclose($fp);
}
基本上,base64可以获得大量内存来存储加密数据,尤其是图像,所以无论何时从数据库中获取少量的海量数据,都需要一些时间才能加载。有时,浏览器不会等待太多时间解密,以便您可以看到损坏的图像
您最好将图像存储在本地文件系统中,而不是存储到数据库中。这会加快你的进程
使用此代码将数据存储到本地文件系统
function get_image($image_url, $localPathToStore)
{
echo $url . "<br>" . $saveto;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
$raw = curl_exec($ch);
curl_close($ch);
if (file_exists($saveto)) {
unlink($saveto);
}
$fp = fopen($saveto, 'x');
fwrite($fp, $raw);
fclose($fp);
}
看起来更像是我找不到的404。检查DOM时,图像的URL是什么?当您在浏览器中输入该URL时,图像是否加载?如果我将整个数据复制到另一个文件中,则图像的URL会显示确切的数据,为什么要加密?还是说编码?它也不应该很大。对于这么小的图像,只有几百个字节。看起来更像是我找不到的404。检查DOM时,图像的URL是什么?当您在浏览器中输入该URL时,图像是否加载?如果我将整个数据复制到另一个文件中,则图像的URL会显示确切的数据,为什么要加密?还是说编码?它也不应该很大。对于这么小的图像,只有几百个字节。