很奇怪,直接用file_get_contents存入数据库成功后,结果读取的时候图片不能显示,后来解决方法是什么!!是用了下base64编码。。。不多说直接上图。 1.这是upload.php ? php include ('./conn.php' ); if ( $_POST ['submit' ]) { if ( $_FILES ['image']['
很奇怪,直接用file_get_contents存入数据库成功后,结果读取的时候图片不能显示,后来解决方法是什么!!是用了下base64编码。。。不多说直接上图。
1.这是upload.php
<?<span>php
</span><span>include</span>('./conn.php'<span>);
</span><span>if</span> (<span>$_POST</span>['submit'<span>]) {
</span><span>if</span> (<span>$_FILES</span>['image']['size'<span>]) {
</span><span>$names</span> = <span>$_FILES</span>['image']['name'<span>];
</span><span>$arr</span> = <span>explode</span>('.', <span>$names</span><span>);
</span><span>$name</span> = <span>$arr</span>[0]; <span>//</span><span>图片名称</span>
<span>$date</span> = <span>date</span>('Y-m-d H:i:s'); <span>//</span><span>上传日期</span>
<span>$fp</span> = <span>fopen</span>(<span>$_FILES</span>['image']['tmp_name'], 'rb'<span>);
</span><span>$type</span> = <span>$_FILES</span>['image']['type'<span>];
</span><span>$file_uploads</span> = <span>file_get_contents</span>(<span>$_FILES</span>['image']['tmp_name'<span>]);
</span><span>$file_uploads</span> = <span>base64_encode</span>(<span>$file_uploads</span><span>);
</span><span>if</span> (!<span>$fp</span><span>) {
showInfo(</span>'读取图片失败!'<span>);
} </span><span>else</span><span> {
</span><span>if</span> (<span>$image</span><span>) {
</span><span>$q</span> = "insert into image (name, pic, type, date) values ('<span>$name</span>','<span>$file_uploads</span>','<span>$type</span>','<span>$date</span>')"<span>;
</span><span>$result</span> = <span>mysql_query</span>(<span>$q</span><span>);
</span><span>if</span> (<span>$result</span><span>) {
showInfo(</span>'上传成功!'<span>);
} </span><span>else</span><span> {
showInfo(</span>'上传失败!'<span>);
}
</span><span>mysql_close</span>(<span>$link</span><span>);
} </span><span>else</span><span> {
showInfo(</span>'请选择要上传的文件!'<span>);
}
}
} </span><span>else</span><span> {
showInfo(</span>'请选择要上传的文件!'<span>);
}
}
</span><span>function</span> showInfo(<span>$info</span><span>)
{
</span><span>echo</span> "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />"<span>;
</span><span>echo</span> "<meta http-equiv='refresh' content='1;url=show.php'>"<span>;
</span><span>echo</span> "</head>"<span>;
</span><span>echo</span> "<body>" . <span>$info</span> . "……</body>"<span>;
</span><span>echo</span> "</html>"<span>;
}
</span>?>
2.image.php用于从数据库中读取图片
<?<span>php
</span><span>include</span>('./conn.php'<span>);
</span><span>$id</span> = <span>$_GET</span>['id'<span>];
</span><span>$sql</span> = "select * from image where id='<span>$id</span>'"<span>;
</span><span>$result</span> = <span>mysql_query</span>(<span>$sql</span><span>);
</span><span>if</span> (!<span>$result</span><span>)
</span><span>die</span>("读取图片失败!"<span>);
</span><span>$num</span> = <span>mysql_num_rows</span>(<span>$result</span><span>);
</span><span>if</span> (<span>$num</span> < 1<span>)
</span><span>die</span>("暂无图片"<span>);
</span><span>$obj</span> = <span>mysql_fetch_object</span>(<span>$result</span><span>);
</span><span>$data</span> = <span>base64_decode</span>(<span>$obj</span>->pic); <span>//</span><span>Base64解码</span>
<span>$type</span> = <span>mysql_result</span>(<span>$result</span>, 0, 'type'<span>);
</span><span>header</span>("Content-type: <span>$type</span>"<span>);
</span><span>echo</span> <span>$data</span><span>;
</span>?>3.show.php显示和上传图片
<?<span>php
</span><span>include</span>('./conn.php'<span>);
</span>?>
<!DOCTYPE html <span>PUBLIC</span> "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en_US" xml:lang="en_US">
<head>
<meta http-equive="Content-Type" content=text/html charset=utf-8>
<title> </title>
</head>
<body>
<form method='post' action='./upload.php' enctype="multipart/form-data">
<input type="file" name="image" />
<input type="submit" name="submit" value="上传" />
</form>
<!-----------显示图片--------------------->
<table>
<?<span>php
</span><span>$ret</span> = <span>mysql_query</span>('select * from image order by id desc'<span>);
</span><span>if</span> (<span>$ret</span><span>) {
</span><span>while</span> (<span>$row</span> = <span>mysql_fetch_array</span>(<span>$ret</span><span>)) {
</span>?>
<tr>
<td style='width:170px;'>
@@##@@image.php?id=<?php
echo </span><span>$row</span><span>[id];
?></span>" width="170" height="150" border="0">
<div style='text-align:center;'><?<span>php
</span><span>echo</span> <span>$row</span>['name'<span>];
</span>?></div>
<?<span>php
</span><span>echo</span> <span>$row</span>['date'<span>];
</span>?>
</td>
</tr>
<?<span>php
}
}
</span>?>
</table>
<!-----------/显示图片--------------------->
</body>
</html>
立即学习“PHP免费学习笔记(深入)”;
最后运行结果:
虚拟主机或在自备服务器中开设好的主机空间,主机环境要求:PHP4.3-5.x/非安全模式/允许WEB文件上传MYSQL4.2-5.xzend optimizer 3.2以上安装方法:1、将安装包解压后,将全部文件和目录上传到网站空间根目录, 用FTP上传时必须采用二进制方式。2、运行http://您的域名/(安装向导),或者进入网站安装http://您的域名/base/install/,填写MYS
0
PHP免费学习笔记(深入)”;
立即学习“PHP免费学习笔记(深入)”;
总结:网上的都是坑爹么?谁有其他不用base64编码的方法能否告知?
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号