在 mysql 数据库中是无法直接存放图片文件的,但如果将图片通过 php 程序转换成二进制数据就可以很轻松的存放到数据库中了。那么这篇文章就说一下,利用 php 将图片文件转换二进制数据的方法。

php 图片转二进制数据的方法

方法1:

php fread() 函数读取打开的文件(二进制的方法) 

示例代码:

<?php
$img  = 'feiniaomy.jpg'; // 图片的存放在地址
$fp   = fopen($img, 'rb'); // 打开图片
$content = fread($fp, filesize($img));//二进制数据
echo $content; //输出二进制数据
//这里输出到浏览器的是乱码
?>

方法二:

php file_get_contents() 读取图片,转为二进制数据

示例代码:

<?php
$img = 'xx.jpg'; //图片的地址
echo file_get_contents($img);
//这里输出到浏览器的是乱码
?>

php 输出二进制图片的方法

php 向浏览器输出二制的图片,只需要加个 header 头来声明一下图片类型即可!

例:

<?php
//声明为图片类型,发送header头
header( "Content-type: image/jpeg");
$img = 'xx.jpg';
$size = filesize($img );
$fp= fopen($img, 'r');
$data = fread($fp, $size);//二进制数据
echo $data; //输出图片的二进制数据
?>

注:

发送的 header 要根据具体情况而定,不一定都是image/jpeg。JPG格式的图片就是image/jpeg,但PNG格式的图片有可能需要声明为 image/png,实际应用中个人应当测试一下。