我已将image src加密与base64_encode一起使用,但是该代码使我的网站变慢,但是当我放置此代码时,这会使我的网站变慢。因此,没有人有任何解决方案可以通过这种类型的加密来使我的网站更快。我将代码放在下面。
<?php
while ($user = mysqli_fetch_array($queryResult, MYSQLI_ASSOC)){
if ($user["main_picture"]){
$imageData = base64_encode(file_get_contents($user["main_picture"]));
$result .= '<td><div class="user_image_container"><img src="data:image/jpeg;base64,'.$imageData.'"></img></div></td>';
}
else{
$result .= '<td></td>';
}
?>
有人可以帮我吗?
答案 0 :(得分:0)
使用此代码加载页面时,PHP解释器必须先通过网络获取图像,然后才能解释页面的其余部分,这会增加时间。
如果不使用此代码加载页面并使用直接链接到图像,则页面本身加载速度会大大提高,然后然后浏览器将加载图像。
可能的解决方法:使用数据库存储映射到图像的一次性令牌。当用户加载页面时,生成令牌(比拉取图像更快),并使图像src指向您设置的图像服务端点,该端点检查令牌,将其标记为已使用,获取文件并然后发送图像。如果要真正真正使用一次,可能会遇到缓存问题,但它至少会隐藏图像的来源。