PHP将图片保存到MySQL数据库中


关键词

PHP 保存图片 数据库

摘要

本文介绍PHP编程时,如何把图片直接保存在MySQL数据库中。将图片保存在MySQL中要使用二进制数据类型的字段。

如何把二进制的数据,比如说图片文件和HTML文件,直接保存在MySQL数据库中呢?我们首先应该知道,一般我们将信息插入到数据库中,这些信息都是是文本信息,而图片或文件是二进制信息,与文本信息截然不同。所以,我们先来在MySQL数据库中创建一个可以保存二进制数据的表。

进入MySQL的命令行界面,输入下面的内容。

mysql> create database binary_data;
mysql> use binary_data;
mysql> CREATE TABLE binary_data ( id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY, description CHAR(50), bin_data LONGBLOB, filename CHAR(50), filesize CHAR(50), filetype CHAR(50));

第一句是创建一个名为binary_data的数据库;
第二句是切换到binary_data数据库下;
第三句是创建一个名为binary_data的表,有一个自动增长的主键字段,名为id;有一个字符串字段为description,有一个类型为LONGBLOB的字段名为bin_data,它就是用来存放二进制数据的字段。其它字段还有文件名、文件大小、文件类型等,都可以为作为图片的相关属性。

这样,MySQL数据库这边就准备好了,下面我们看看PHP程序中应该如何来做。

<?PHP
//不相关的代码就省略了,下面看看PHP如何接收图片文件,然后如何保存到数据库中
//接收图片等文件
$data = addslashes(fread(fopen($up_file, "r"), filesize($up_file)));
//构造插入MySQL数据库的SQL语句
$query=" INSERT INTO binary_data (description,bin_data,filename,filesize,filetype) VALUES ('$description','$data','$up_file_name','$up_file_size','$up_file_type')";
//执行SQL查询
$result=MYSQL_QUERY($query);
//取出执行得到的表的id
$id= mysql_insert_id();
print "<p>This file has the following Database ID: <b>$id</b>"; //显示文件在数据库中的ID
//关闭数据库连接
MYSQL_CLOSE();
?>

下面看看提交图片的表单应该怎么设计。

<form method='post' action='<?php echo $PHP_SELF; ?>' enctype='multipart/form-data'>
文件描述:
<input type='text' name='description' size='40'>
<INPUT TYPE='hidden' name='MAX_FILE_SIZE' value='1000000'>
保存文件:
<input type='file' name='up_file' size='40'>
<p><input type='submit' name='submit' value='submit'>
</form>

怎么样,看起来是不是很简单,这部分HTML代码真可谓一点技术含量都没有的。

关于PHP将图片保存到MySQL数据库中,本文就介绍这么多,希望对您有所帮助,谢谢!

 

要饭二维码

洪哥写文章很苦逼,如果本文对您略有帮助,可以扫描下方二维码支持洪哥!金额随意,先行谢过!大家的支持是我前进的动力!

文章的版权

本文属于“洪哥笔记”原创文章,转载请注明来源地址:PHP将图片保存到MySQL数据库中:http://www.splaybow.com/post/php-save-image-mysql.html

如果您在服务器运维、网络管理、网站或系统开发过程有需要提供收费服务,请加QQ:115085382!十年运维经验,帮您省钱、让您放心!
亲,如果有需要,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D

« PHP如何判断字符串中的中文字符 PHP注释符 »