时时商务社区

标题: php实现上传图片保存到数据库的方法 [打印本页]

作者: qz234    时间: 2018-2-14 05:49

            php实现上传图片保存到数据库的方法。分享给大家供大家参考。具体分析如下:
php 上传图片,一般都使用move_uploaded_file方法保存在服务器上。但如果一个网站有多台服务器,就需要把图片发布到所有的服务器上才能正常使用(使用图片服务器的除外)
如果把图片数据保存到数据库中,多台服务器间可以实现文件共享,节省空间。
首先图片文件是二进制数据,所以需要把二进制数据保存在mysql数据库。
mysql数据库提供了BLOB类型用于存储大量数据,BLOB是一个二进制对象,能容纳不同大小的数据。
BLOB类型有以下四种,除存储的最大信息量不同外,其他都是一样的。可根据需要使用不同的类型。
TinyBlob       最大 255B
Blob              最大 65K
MediumBlob  最大 16M
LongBlob      最大 4G
数据表photo,用于保存图片数据,结构如下:
[U]复制代码[/U] 代码如下: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:
[U]复制代码[/U] 代码如下:
// 判断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{  
// 显示图片列表及上传表单  
?>  
  
  
   
   
   upload image to db demo   
   
  
  
   
  图片:
  
  
  
   
  
[img]upload_image_todb.php?action=show&id='.$val['id'].'&t='.time().'[/img]
';  
    }  
?>  
  
  


希望本文所述对大家的php程序设计有所帮助。
            
            
您可能感兴趣的文章:
  • php ajax无刷新上传图片实例代码
  • PHP CKEditor 上传图片实现代码
  • 简单PHP上传图片、删除图片实现代码
  • php上传图片到指定位置路径保存到数据库的具体实现
  • php上传大文件失败的原因及应对策略
  • PHP中CheckBox多选框上传失败的代码写法
  • 解决PHP上传非标准格式的图片pjpeg失败的方法
            




    欢迎光临 时时商务社区 (http://bbs.4435.cn/) Powered by Discuz! X3.2