BLOB是一种MysqL数据类型,称为二进制大对象。正如它的名字它是用来存储类似MysqL二进制和VARBINARY类型的、大量的字符串数据。
MysqL BLOB类型 最大存储长度(字节)
TINYBLOB (1)(2 ^ 8)
blob ((2 ^ 16)1)
MEDIUMBLOB ((2 ^ 24)1)
LONGBLOB ((2 ^ 32)1)
在这篇教程中,我们学习如何使用PHP插入和读取MysqL BLOB字段。
(PS:T不错的PHP Q扣峮:276167802,验证:csl)
CREATE TABLE IF NOT EXISTS `output_images` ( `imageId` tinyint(3) NOT NULL AUTO_INCREMENT, `imageType` varchar(25) NOT NULL DEFAULT '', `imageData` mediumblob NOT NULL, PRIMARY KEY (`imageId`) )
插入数据
3、图像文件插入BLOB。
PHP实现脚本:
imageUpload.PHP
<?PHP if(count($_FILES) > 0) { if(is_uploaded_file($_FILES['userImage']['tmp_name'])) { MysqL_connect(localhost, root, ); MysqL_select_db (PHPpot_examples); $imgData =addslashes(file_get_contents($_FILES['userImage']['tmp_name'])); $imageProperties = getimageSize($_FILES['userImage']['tmp_name']); $sql = INSERT INTO output_images(imageType ,imageData) VALUES('{$imageProperties['mime']}', '{$imgData}'); $current_id = MysqL_query($sql) or die(<b>Error:</b> Problem on Image Insert<br/> . MysqL_error()); if(isset($current_id)) { header(Location: listimages.PHP); }}} ?> <HTML> <HEAD> <TITLE>Upload Image to MysqL BLOB</TITLE> <link href=imageStyles.css rel=stylesheet type=text/css /> </HEAD> <BODY> <form name=frmImage enctype=multipart/form-data action= method=post class=frmImageUpload> <label>Upload Image File:</label><br/> <input name=userImage type=file class=inputFile /> <input type=submit value=Submit class=btnSubmit /> </form> </div> </BODY> </HTML>
提交表单,PHP获取内容图像的文件并将其作为二进制数据存储到MysqL BLOB列。
在浏览器上显示BLOB图像,我们必须:
1、从MysqL BLOB获得图像数据和类型
2、将类型设置为图像(image/jpg, image/gif, …)使用PHP header()函数。
imageView.PHP <?PHP $conn = MysqL_connect(localhost, root, ); MysqL_select_db(PHPpot_examples) or die(MysqL_error()); if(isset($_GET['image_id'])) { $sql = SELECT imageType,imageData FROM output_images WHERE imageId= . $_GET['image_id']; $result = MysqL_query($sql) or die(<b>Error:</b> Problem on Retrieving Image BLOB<br/> . MysqL_error()); $row = MysqL_fetch_array($result); header(Content-type: . $row[imageType]); echo $row[imageData]; } MysqL_close($conn); ?>
上面的PHP代码将显示MysqL BLOB存储的图片。从HTML图像标签我们可以参考这个PHP文件与相应image_id作为参数。例如:
<img src=imageView.PHP?image_id=<?PHP echo $row[imageId]; ?> />
完成代码如下:
<?PHP $conn = MysqL_connect(localhost, root, ); MysqL_select_db(PHPpot_examples); $sql = SELECT imageId FROM output_images ORDER BY imageId DESC; $result = MysqL_query($sql); ?> <HTML> <HEAD> <TITLE>List BLOB Images</TITLE> <link href=imageStyles.css rel=stylesheet type=text/css /> </HEAD> <BODY> <?PHP while($row = MysqL_fetch_array($result)) { ?> <img src=imageView.PHP?image_id=<?PHP echo $row[imageId]; ?> /><br/> <?PHP } MysqL_close($conn); ?> </BODY> </HTML>
感谢大家的阅读,希望大家收益多多。
原文链接:https://blog.csdn.net/u012275531/article/details/1791499
推荐教程:《php教程》
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。