php实现上传图片保存到数据库的方法

作者:傲雪星枫 时间:2024-05-09 14:48:35 

php实现上传图片保存到数据库的方法。分享给大家供大家参考。具体分析如下:

php 上传图片,一般都使用move_uploaded_file方法保存在服务器上。但如果一个网站有多台服务器,就需要把图片发布到所有的服务器上才能正常使用(使用图片服务器的除外)
如果把图片数据保存到数据库中,多台服务器间可以实现文件共享,节省空间。

首先图片文件是二进制数据,所以需要把二进制数据保存在mysql数据库。
mysql数据库提供了BLOB类型用于存储大量数据,BLOB是一个二进制对象,能容纳不同大小的数据。

BLOB类型有以下四种,除存储的最大信息量不同外,其他都是一样的。可根据需要使用不同的类型。

TinyBlob       最大 255B
Blob              最大 65K
MediumBlob  最大 16M
LongBlob      最大 4G

数据表photo,用于保存图片数据,结构如下:

CREATE TABLE `photo` ( 
  `id` int(10) unsigned NOT NULL auto_increment, 
  `type` varchar(100) NOT NULL, 
  `binarydata` mediumblob NOT NULL, 
  PRIMARY KEY  (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

upload_image_todb.php:

<?php 
// 连接数据库 
$conn=@mysql_connect("localhost","root","")  or die(mysql_error()); 
@mysql_select_db('demo',$conn) or die(mysql_error()); 

// 判断action 
$action = isset($_REQUEST['action'])? $_REQUEST['action'] : ''; 

// 上传图片 
if($action=='add'){ 
    $image = mysql_escape_string(file_get_contents($_FILES['photo']['tmp_name'])); 
    $type = $_FILES['photo']['type']; 
    $sqlstr = "insert into photo(type,binarydata) values('".$type."','".$image."')"; 
    @mysql_query($sqlstr) or die(mysql_error()); 
    header('location:upload_image_todb.php'); 
    exit(); 
// 显示图片 
}elseif($action=='show'){ 
    $id = isset($_GET['id'])? intval($_GET['id']) : 0; 
    $sqlstr = "select * from photo where id=$id"; 
    $query = mysql_query($sqlstr) or die(mysql_error()); 
    $thread = mysql_fetch_assoc($query); 
    if($thread){ 
        header('content-type:'.$thread['type']); 
        echo $thread['binarydata']; 
        exit(); 
    } 
}else{ 
// 显示图片列表及上传表单 
?> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
 <head> 
  <meta http-equiv="content-type" content="text/html; charset=utf-8"> 
  <title> upload image to db demo </title> 
 </head> 
 
 <body> 
  <form name="form1" method="post" action="upload_image_todb.php" enctype="multipart/form-data"> 
  <p>图片:<input type="file" name="photo"></p> 
  <p><input type="hidden" name="action" value="add"><input type="submit" name="b1" value="提交"></p> 
  </form> 
 
<?php 
    $sqlstr = "select * from photo order by id desc"; 
    $query = mysql_query($sqlstr) or die(mysql_error()); 
    $result = array(); 
    while($thread=mysql_fetch_assoc($query)){ 
        $result[] = $thread; 
    } 
    foreach($result as $val){ 
        echo '<p><img src="upload_image_todb.php?action=show&id='.$val['id'].'&t='.time().'" width="150"></p>'; 
    } 
?> 
</body> 
</html> 
<?php 

?>

php实现上传图片保存到数据库的方法

php实现上传图片保存到数据库的方法

希望本文所述对大家的php程序设计有所帮助。

标签:php,图片,数据库,方法
0
投稿

猜你喜欢

  • centos7 PHP环境搭建 GD库 等插件安装方法

    2023-11-05 21:25:38
  • pytorch 数据加载性能对比分析

    2022-04-17 04:22:22
  • SQL Server高级内容之case语法函数概述及使用

    2024-01-13 20:40:12
  • Python小白学习爬虫常用请求报头

    2024-01-02 06:39:19
  • Oracle存储过程基本语法介绍

    2023-06-27 14:00:26
  • 使用pyecharts生成Echarts网页的实例

    2023-02-22 10:19:42
  • Python super()方法原理详解

    2023-06-19 18:28:30
  • php可应用于面包屑导航的迭代寻找家谱树实现方法

    2024-05-13 09:24:41
  • PHP在网页中动态生成PDF文件详细教程

    2024-05-08 09:34:56
  • 分页技术原理与实现之分页的意义及方法(一)

    2024-01-26 14:29:16
  • 海王小姐姐悄悄问我怎么在PC端登录多个微信

    2021-10-27 16:25:10
  • 浅谈Python中chr、unichr、ord字符函数之间的对比

    2022-02-27 16:02:58
  • text-overflow实现标题省略号功能

    2009-05-19 12:13:00
  • python--shutil移动文件到另一个路径的操作

    2022-05-15 05:43:25
  • Python合并多个Excel数据的方法

    2022-11-02 06:31:33
  • go swagger生成接口文档使用教程

    2023-10-20 12:31:35
  • 在Python中处理时间之clock()方法的使用

    2021-09-22 06:07:26
  • windows中安装Python3.8.0的实现方法

    2022-11-22 00:18:09
  • Go mod包管理工具详解

    2024-04-30 10:08:11
  • Jquery练习之表单验证实现代码

    2023-07-02 05:30:59
  • asp之家 网络编程 m.aspxhome.com