Base64编码文件二进制流是使用base64_encode函数对文件二进制信息进行编码。
官方说明:
base64_encode — 使用 MIME base64 对数据进行编码
Report a bug 说明
string base64_encode ( string $data )
使用 base64 对 data 进行编码。
设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的主体。
Base64-encoded 数据要比原始数据多占用 33% 左右的空间,具体方式为如下代码:
- $path = 'image.jpg';
- $fp = fopen($path, 'rb');
- $content = fread($fp, filesize($path));
- fclose($fp);
- $content = base64_encode($content);
-
上述程序输出的结果类似:
R0lGODlhEAAQAJECAISEhAAAhP///wAAACH5BAEAAAIALAAAAAAQABAAAAImlI+pyxedQADQhVflpfAK30jG1lwmqIgWl6CClmKHxn6mdVb6zhcAOw==
这样我们成功将一个文件转换成了字符串。
解码过程非常简单,使用base64_decode($content)即可。
上述处理过程主要用途有:
1、接口传输
主要适用于通过WEB接口将文件从一个站点向另一个站点传输,可以用于XML信息。
2、存入数据库
当然,将图片等文件信息保存到数据库中完全可以不用这么做,但这种方式依然适用。对于数据库新手来说这种方式更可接受。因为这完全是一个字符串。
3、文件加密
文件加密可大家用得比较少,举个例子,假如我们有一套PHP程序需要保护,必须有授权码的用户才能正常运行,那么我们可能使用授权码来对文件进行加密,即将上述编码后的字符串再次加工,运行过程需要授权码才可运行,当然还有其它用途,根据各人的需要灵活使用. |