php利用mysql保存和显示图片

本文介绍了一种将图像数据存储在数据库中的方法,并演示了如何从数据库中读取这些图像进行显示。具体步骤包括:创建包含图像内容及类型字段的数据库表、通过PHP脚本检查并保存上传的图像文件、以及通过PHP脚本从数据库中获取图像并正确设置其Content-Type。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、创建数据库表

 

CREATE TABLE `photo` (
  `id` int(12) NOT NULL AUTO_INCREMENT,
  `image` blob NOT NULL,
  `ContentType` varchar(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

 

image字段存的是图像的内容,为blob格式,contenttype字段存的是图像的contenttype

2、图像保存到数据库

 

$_allowType = array('image/jpg','image/jpeg','image/pjpeg','image/png','image/gif');
			if($_FILES['newmPhoto']['size'] >500000){//图片超过500k
				cpmsg('size_max');				
			}elseif(!in_array($_FILES['newmPhoto']['type'],$_allowType)){
				cpmsg('type_error');
			}
			else{
				$fp =fopen($_FILES['newmPhoto']['tmp_name'],'r');
				$fileData = addslashes(fread($fp,filesize($_FILES['newmPhoto']['tmp_name'])));		
				$data = array(				
						'Contenttype' =>$_FILES['newmPhoto']['type'],
						'image' => $fileData,
				);		
				DB::insert('photo', $data);//封装的数据库insert函数
			}

 注意必须用addslashes函数进行转移,否则数据库操作过不去

3、图片显示

echo "<img src=\"show_image.php?id=".$imageId."\"/>";

 

show_image.php代码

<?php
	require_once 'std.inc.php';
	global $_G;  
	$query = DB::fetch_first("SELECT image,Contenttype FROM ".DB::table('photo')." WHERE id={$_G['gp_id']}");
	Header( "Content-type: ".$query['Contenttype']);
	echo $query[image];
?>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值