您好,欢迎访问一九零五行业门户网

php将图片以二进制存到mysql中的方法

很奇怪,直接用file_get_contents存入数据库成功后,结果读取的时候图片不能显示,后来解决方法是什么!!是用了下base64编码。。。不多说直接上图。 1.这是upload.php ? php include ('./conn.php' ); if ( $_post ['submit' ]) { if ( $_files ['image']['
很奇怪,直接用file_get_contents存入数据库成功后,结果读取的时候图片不能显示,后来解决方法是什么!!是用了下base64编码。。。不多说直接上图。
1.这是upload.php
phpinclude('./conn.php');if ($_post['submit']) { if ($_files['image']['size']) { $names = $_files['image']['name']; $arr = explode('.', $names); $name = $arr[0]; //图片名称 $date = date('y-m-d h:i:s'); //上传日期 $fp = fopen($_files['image']['tmp_name'], 'rb'); $type = $_files['image']['type']; $file_uploads = file_get_contents($_files['image']['tmp_name']); $file_uploads = base64_encode($file_uploads); if (!$fp) { showinfo('读取图片失败!'); } else { if ($image) { $q = insert into image (name, pic, type, date) values ('$name','$file_uploads','$type','$date'); $result = mysql_query($q); if ($result) { showinfo('上传成功!'); } else { showinfo('上传失败!'); } mysql_close($link); } else { showinfo('请选择要上传的文件!'); } } } else { showinfo('请选择要上传的文件!'); }}function showinfo($info){ echo ; echo ; echo ; echo . $info . ……; echo ;}?>
2.image.php用于从数据库中读取图片
phpinclude('./conn.php');$id = $_get['id'];$sql = select * from image where id='$id';$result = mysql_query($sql);if (!$result) die(读取图片失败!);$num = mysql_num_rows($result);if ($num ) die(暂无图片);$obj = mysql_fetch_object($result);$data = base64_decode($obj->pic); //base64解码$type = mysql_result($result, 0, 'type');header(content-type: $type);echo $data;?>
3.show.php显示和上传图片
phpinclude('./conn.php');?>span>public -//w3c//dtd xhtml 1.0 transitional//en http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd>
php$ret = mysql_query('select * from image order by id desc');if ($ret) { while ($row = mysql_fetch_array($ret)) {?>image.php?id= width=170 style=max-width:90% border=0>php echo $row['name'];?>
php echo $row['date'];?>
php }}?>
最后运行结果:
总结:网上的都是坑爹么?谁有其他不用base64编码的方法能否告知?
其它类似信息

推荐信息