一.存储图片的数据表结构:

  1. --
  2. -- 表的结构 `image`
  3. --
  4.  
  5. CREATE TABLE IF NOT EXISTS `image` (
  6. `id` int(3) NOT NULL AUTO_INCREMENT,
  7. `name` varchar(100) CHARACTER SET utf8 NOT NULL,
  8. `pic` blob NOT NULL,
  9. `type` varchar(50) CHARACTER SET utf8 NOT NULL,
  10. `date` datetime NOT NULL,
  11. PRIMARY KEY (`id`)
  12. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
  13.  
  14. --
  15. -- 转存表中的数据 `image`
  16. --

  二.php将图片以二进制保存到mysql数据库中:

(1)连接数据库文件:conn.php:
  1. <?php
  2. $conn = mysql_connect('localhost', 'root', '');
  3. mysql_select_db('study', $conn);
  4. mysql_query("SET NAMES UTF-8");
  5. ?>

  (2)图片上传并以二进制保存到数据库文件:upload.php

  1. <?php
  2. include('./conn.php');
  3. if ($_POST['submit']) {
  4. if ($_FILES['image']['size']) {
  5. $names = $_FILES['image']['name'];
  6. $arr = explode('.', $names);
  7. $name = $arr[0]; //图片名称
  8. $date = date('Y-m-d H:i:s'); //上传日期
  9. $fp = fopen($_FILES['image']['tmp_name'], 'rb');
  10. $type = $_FILES['image']['type'];
  11. if (!$fp) {
  12. showInfo('读取图片失败!');
  13. } else {
  14. $image = addslashes(fread($fp, filesize($_FILES['image']['tmp_name'])));
  15. if ($image) {
  16. $q = "insert into image (name, pic, type, date) values ('$name','$image','$type','$date')";
  17. $result = mysql_query($q);
  18. if ($result) {
  19. showInfo('上传成功!');
  20. } else {
  21. showInfo('上传失败!');
  22. }
  23.  
  24. } else {
  25. showInfo('请选择要上传的文件!');
  26. }
  27. }
  28.  
  29. } else {
  30. showInfo('请选择要上传的文件!');
  31. }
  32. }
  33.  
  34. function showInfo($info)
  35. {
  36. echo "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />";
  37. echo "<meta http-equiv='refresh' content='1;url=index.php'>";
  38. echo "</head>";
  39. echo "<body>" . $info . "……</body>";
  40. echo "</html>";
  41. }
  42. ?>

  三.从数据库中读取以二进制保存的图片并显示:image.php

  1. <?php
  2. include('./conn.php');
  3.  
  4. $id = $_GET['id'];
  5. $sql = "select * from image where id='$id'";
  6. $result = mysql_query($sql, $conn);
  7. if (!$result)
  8. die("读取图片失败!");
  9. $num = mysql_num_rows($result);
  10. if ($num < 1)
  11. die("暂无图片");
  12. $data = mysql_result($result, 0, 'pic');
  13. $type = mysql_result($result, 0, 'type');
  14. mysql_close($id);
  15. Header("Content-type: $type");
  16. echo $data;
  17. ?>

  四.上传并显示图片的页面:index.php

  1. <?php
  2. include('./conn.php');
  3. ?>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  5. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  6.  
  7. <html xmlns="http://www.w3.org/1999/xhtml" lang="en_US" xml:lang="en_US">
  8. <!--
  9. * Created on 2012-10-20
  10. *
  11. * To change the template for this generated file go to
  12. * Window - Preferences - PHPeclipse - PHP - Code Templates
  13. -->
  14. <head>
  15. <meta http-equive="Content-Type" content=text/html charset=utf-8>
  16. <title> </title>
  17. </head>
  18. <body>
  19. <form method='post' action='./upload.php' enctype="multipart/form-data">
  20. <input type="file" name="image" />
  21. <input type="submit" name="submit" value="上传" />
  22. </form>
  23. <!-----------显示图片--------------------->
  24. <table>
  25. <?php
  26. $ret = mysql_query('select * from image order by id desc');
  27. if ($ret) {
  28. while ($row = mysql_fetch_array($ret)) {
  29. ?>
  30. <tr>
  31. <td style='width:170px;'>
  32. <img src="data:image.php?id=<?php
  33. echo $row[id];
  34. ?>" width="170" height="150" border="0">
  35. <div style='text-align:center;'><?php
  36. echo $row['name'];
  37. ?></div>
  38. <?php
  39. echo $row['date'];
  40. ?>
  41. </td>
  42. </tr>
  43. <?php
  44. }
  45. }
  46. ?>
  47. </table>
  48. <!-----------/显示图片--------------------->
  49. </body>
  50. </html>

  

php将图片以二进制保存到mysql数据库并显示的更多相关文章

  1. 上传图片保存到MySql数据库并显示--经验证有效

    以下方法仅供参考,只是介绍下这一种方法而已.欢迎指正!! 前台(image.html):  1<html> 2<head> 3<title>上传图片</tit ...

  2. Python实现将图片以二进制格式保存到MySQL数据库中,以及取出:

    创建数据库表格式: CREATE TABLE photo ( photo_no int(6) unsigned NOT NULL auto_increment, image MEDIUMBLOB, P ...

  3. Python scrapy爬虫数据保存到MySQL数据库

    除将爬取到的信息写入文件中之外,程序也可通过修改 Pipeline 文件将数据保存到数据库中.为了使用数据库来保存爬取到的信息,在 MySQL 的 python 数据库中执行如下 SQL 语句来创建 ...

  4. node 爬虫 --- 将爬取到的数据,保存到 mysql 数据库中

    步骤一:安装必要模块 (1)cheerio模块 ,一个类似jQuery的选择器模块,分析HTML利器. (2)request模块,让http请求变的更加简单 (3)mysql模块,node连接mysq ...

  5. 使用官方组件下载图片,保存到MySQL数据库,保存到MongoDB数据库

    需要学习的地方,使用官方组件下载图片的用法,保存item到MySQL数据库 需要提前创建好MySQL数据库,根据item.py文件中的字段信息创建相应的数据表 1.items.py文件 from sc ...

  6. 利用session_set_save_handler()函数将session保存到MySQL数据库中

    PHP保存session默认的是采用的文件的方式来保存的,这仅仅在文件的空间开销很小的windows上是可以采用的,但是如果我们采用uinx或者是liux上的文件系统的时候,这样的文件系统的文件空间开 ...

  7. 信息技术手册可视化进度报告 基于BeautifulSoup框架的python3爬取数据并连接保存到MySQL数据库

    老师给我们提供了一个word文档,里面是一份信息行业热词解释手册,要求我们把里面的文字存进数据库里面,然后在前台展示出来. 首先面临的问题是怎么把数据导进MySQL数据库,大家都有自己的方法,我采用了 ...

  8. 关于阿里云centos 2.6下手机表情输入后无法保存到mysql数据库的问题调研及mysql版本从5.1升级到5.7的全过程纪要

    近日在开发手机app的评论功能时,输入表情文字,保存后提示数据库保存失败.错误日志片段如下 caused by: java.sql.SQLException: Incorrect string val ...

  9. python之scrapy爬取数据保存到mysql数据库

    1.创建工程 scrapy startproject tencent 2.创建项目 scrapy genspider mahuateng 3.既然保存到数据库,自然要安装pymsql pip inst ...

随机推荐

  1. 2016沈阳网络赛 QSC and Master

    QSC and Master Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...

  2. 创业手记 Mr.Hua

    <MR.HUA 创业手记>这本书期盼了很久,也看了很久,每每回味都是意犹未尽,仔细研读,真有醍醐灌顶之意.如果说没有跟Mr.Hua结识,那真该庆幸自己得以拜读.我把自己觉得华哥不错的句子摘 ...

  3. 总结自己的Git常用命令

    总结自己的Git常用命令 使用git也有一段时间了,把自己常用的命令用自己的描述记录起来,方便自己备忘也方便其他人参考. 目录: 最基本的命令: git clone 拷贝并跟踪远程的master分支. ...

  4. PAT (Advanced Level) 1054. The Dominant Color (20)

    简单题 #include<cstdio> #include<cstring> #include<cmath> #include<vector> #inc ...

  5. docker 容器日志集中 ELK + filebeat

    docker 容器日志集中 ELK ELK 基于 ovr 网络下 docker-compose.yaml version: '2' networks: network-test: external: ...

  6. 谈谈java的BlockingQueue

    http://www.cnblogs.com/archy_yu/archive/2013/04/19/3018479.html 博客园 首页 新随笔 联系 管理 随笔- 92  文章- 0  评论- ...

  7. Python中super的用法

    super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO).重复调用(钻石继承)等种种问题.总之前人留下的经验就是:保持一致性 ...

  8. 自制ichartjs饼图

    饼图:2个数据: <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> &l ...

  9. GtkImageMenuItem

    做了个工具条,每次点arrow出来的菜单都没图标,郁闷;查来查去,看源码,看css,最后知道GtkAction缺省就是对应GtkImageMenuItem,再一试,跟toolbar无关,换menu也不 ...

  10. openstack controller ha测试环境搭建记录(十五)——创建实例

    # source demo-openrc.sh # ssh-keygenGenerating public/private rsa key pair.Enter file in which to sa ...