我正在尝试从服务器插入图像作为转换为base64的背景图像。
我收到这些错误:
警告:filesize():stat失败
警告:fread():长度参数必须大于0
我已经读过这两个错误都可能是因为文件不可写,但我已经使所有文件都可写(图像文件,它所在的文件夹和代码所在的文件),但仍然没有乐趣。
这是php代码
<?php
$img_source = "image.jpg";
$img_binary = fread(fopen($img_source, "r"), filesize($img_source));
$img_string = base64_encode($img_binary);
?>
这是我的css / php
body { background-image:url('data:image/gif;base64,<?php echo $img_string; ?>');
我之前使用 get_file_contents 获得了我想要的结果,但它非常慢。这是我的老方法。
<?php echo base64_encode(file_get_contents($img_url.'/'.$image)) ?>
答案 0 :(得分:1)
使用file_get_contents
您处于正确的轨道,但似乎您实际上使用的是URL,而不仅仅是文件路径(因此file_get_contents
使用HTTP来获取文件内容)。尝试将其更改为:
<?php
$img_source = "image.jpg";
$img_string = base64_encode(file_get_contents($img_source));
?>