欢迎光临!中国网页设计提供最新的免费网页制作教程,网页设计技术,HTML5+DIV3...中国站长必上的网站。
加入收藏设为首页广告合作
您当前位置:网站首页 >> 网络编程 >> PHP编程 >> php将上传图片保存到mysql数据库实例(图)
  • Asp编程
  • PHP编程
  • .Net编程
  • jsp编程
  • android 开发
  • Access
  • Mysql
  • Mssql
  • Oracle
  • php将上传图片保存到mysql数据库实例(图)

    来源:本站原创 浏览:2324

    内容提要:文章分享的php将上传图片保存到mysql数据库代码,简单实用,希望对大家的PHP编程有所帮助。

    一般情况下我们网站上传的图片是存放到服务器下的upload文件中,数据库保存图片路径即可。但有些特殊情况或项目要求:php将上传图片保存到mysql数据库。

    把图片数据保存到数据库中的好处:多台服务器间可以实现文件共享,节省空间。

    图片文件是二进制数据,所以需要把二进制数据保存在mysql数据库。mysql数据库中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 ;

    php将上传图片保存到mysql数据库实例

    用于上传和显示图片的页面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 

    ?>

    发表评论 共有0人对本文发表评论
    网名:
    评论:
    验证:
    (网友评论仅供表达个人看法,并不表明本站同意其观点或证实其描述)
    联系我们 - 网站调查 - 免责声明 - 站长简介 - 站点综合查询 - 课件习题 - 友情链接 - 站长统计