在开发中,自己遇到一个前端在上传图片的时候,使用的base64数据流文件显示的图片。

也就是说

1
<img src="data:image/jpg;base64," />

***image/后面的jpg是我们的图片文件格式,(base64,)后面的很大一长串就是具体的文件信息。

data:image/jpg;base64则是指的文件头。我们可以把src里面的全部内容放在浏览器的地址栏进

行访问,是可以正常显示图片文件的。

我将src的值获取到后台之后,在后台进行处理。这里的方法就不具体细讲了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//  $base_img是获取到前端传递的src里面的值,也就是我们的数据流文件
$base_img = str_replace('data:image/jpg;base64,', '', $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);

在线转换工具链接:http://tool.css-js.com/base64.html

base64简介:http://baike.baidu.com/link?url=tbfs2Rem2mqO8ZLe91jp9BhLQJqBEvjDHFzu05lF4DxUoqNSdS9pzqoHuYrzPvxQZr_ZIOC1Bs7-ZoK364yP5_