在开发中,自己遇到一个前端在上传图片的时候,使用的base64数据流文件显示的图片。
也就是说
<img src="https://img-blog.csdnimg.cn/2022010611512684661.jpg" />
***image/后面的jpg是我们的图片文件格式,(base64,)后面的很大一长串就是具体的文件信息。
data:image/jpg;base64则是指的文件头。我们可以把src里面的全部内容放在浏览器的地址栏进
行访问,是可以正常显示图片文件的。
我将src的值获取到后台之后,在后台进行处理。这里的方法就不具体细讲了。
// $base_img是获取到前端传递的src里面的值,也就是我们的数据流文件
$base_img = str_replace('https://img-blog.csdnimg.cn/2022010611512684661.jpg', '', $base_img);
// 设置文件路径和文件前缀名称
$path = "./";
$prefix='nx_';
$output_file = $prefix.time().rand(100,999).'.jpg';
$path = $path.$output_file;
// 创建将数据流文件写入我们创建的文件内容中
$ifp = fopen( $path, "wb" );
fwrite( $ifp, base64_decode( $base_img) );
fclose( $ifp );
// 第二种方式
// file_put_contents($path, base64_decode($base_img));
// 输出文件
print_r($output_file);