PHP实现上传图片到数据库并显示输出的方法


Posted in PHP onMay 31, 2018

本文实例讲述了PHP实现上传图片到数据库并显示输出的方法。分享给大家供大家参考,具体如下:

1. 创建数据表

CREATE TABLE ccs_image (
 id int(4) unsigned NOT NULL auto_increment,
 description varchar(250) default NULL,
 bin_data longblob,
 filename varchar(50) default NULL,
 filesize varchar(50) default NULL,
 filetype varchar(50) default NULL,
 PRIMARY KEY (id)
)engine=myisam DEFAULT charset=utf8

2. 用于上传图片到服务器的页面 upimage.html

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport"
     content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <style type="text/css">
    *{margin: 1%}
  </style>
  <title>Document</title>
</head>
<body>
<form method="post" action="upimage.php" enctype="multipart/form-data">
  描述:
  <input type="text" name="form_description" size="40">
  <input type="hidden" name="MAX_FILE_SIZE" value="1000000"> <br>
  上传文件到数据库:
  <input type="file" name="form_data" size="40"><br>
  <input type="submit" name="submit" value="submit">
</form>
</body>
</html>

3. 处理图片上传的php  upimage.php

<?php
if (isset($_POST['submit'])) {
  $form_description = $_POST['form_description'];
  $form_data_name = $_FILES['form_data']['name'];
  $form_data_size = $_FILES['form_data']['size'];
  $form_data_type = $_FILES['form_data']['type'];
  $form_data = $_FILES['form_data']['tmp_name'];
  $dsn = 'mysql:dbname=test;host=localhost';
  $pdo = new PDO($dsn, 'root', 'root');
  $data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));
  //echo "mysqlPicture=".$data;
  $result = $pdo->query("INSERT INTO ccs_image (description,bin_data,filename,filesize,filetype)
         VALUES ('$form_description','$data','$form_data_name','$form_data_size','$form_data_type')");
  if ($result) {
    echo "图片已存储到数据库";
  } else {
    echo "请求失败,请重试";

注:图片是以二进制blob形式存进数据库的,像这样

PHP实现上传图片到数据库并显示输出的方法

4. 显示图片的php getimage.php

<?php
  $id =2;// $_GET['id']; 为简洁,直接将id写上了,正常应该是通过用户填入的id获取的
  $dsn='mysql:dbname=test;host=localhost';
  $pdo=new PDO($dsn,'root','root');
  $query = "select bin_data,filetype from ccs_image where id=2";
  $result = $pdo->query($query);
  $result=$result->fetchAll(2);
//  var_dump($result);
  $data = $result[0]['bin_data'];
  $type = $result[0]['filetype'];
  Header( "Content-type: $type");
  echo $data;

到浏览器查看已经上传的图片,看是否可以显示

PHP实现上传图片到数据库并显示输出的方法

是没有问题的,证明图片已经以二进制的形式存储到数据库了

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

PHP 相关文章推荐
用PHP和ACCESS写聊天室(四)
Oct 09 PHP
ZF等常用php框架中存在的问题
Jan 10 PHP
PHP实现定时生成HTML网站首页实例代码
Nov 20 PHP
php is_file()和is_dir()用于遍历目录时用法注意事项
Mar 02 PHP
PHP第一季视频教程(李炎恢+php100 不断更新)
May 29 PHP
PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
Nov 10 PHP
Linux下手动编译安装PHP扩展的例子分享
Jul 15 PHP
php实现两表合并成新表并且有序排列的方法
Dec 05 PHP
php获得客户端浏览器名称及版本的方法(基于ECShop函数)
Dec 23 PHP
PHP中Laravel 关联查询返回错误id的解决方法
Apr 01 PHP
PHP 实现页面静态化的几种方法
Jul 23 PHP
php ajax confirm 删除实例详解
Mar 06 PHP
php 获取xml接口数据的处理方法
May 31 #PHP
thinkPHP框架中执行事务的方法示例
May 31 #PHP
PHP以json或xml格式返回请求数据的方法
May 31 #PHP
PHP框架Laravel中使用UUID实现数据分表操作示例
May 30 #PHP
php支付宝系列之电脑网站支付
May 30 #PHP
Laravel框架使用Redis的方法详解
May 30 #PHP
php实现微信支付之退款功能
May 30 #PHP
You might like
丧钟首部独立剧集《丧钟:骑士与龙》北美正式开播,场面血腥
2020/04/09 欧美动漫
php和mysql中uft-8中文编码乱码的几种解决办法
2012/04/19 PHP
PHP数据集构建JSON格式及新数组的方法
2012/11/07 PHP
php读取EXCEL文件 php excelreader读取excel文件
2012/12/06 PHP
如何批量替换相对地址为绝对地址(利用bat批处理实现)
2013/05/27 PHP
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
2014/06/30 PHP
微信随机生成红包金额算法php版
2016/07/21 PHP
php 浮点数比较方法详解
2017/05/05 PHP
说说掌握JavaScript语言的思想前提想学习js的朋友可以看看
2009/04/01 Javascript
JavaScript 语言的递归编程
2010/05/18 Javascript
JS 跳转页面延迟2种方法
2013/03/29 Javascript
jquery click([data],fn)使用方法实例介绍
2013/07/08 Javascript
JS模拟自动点击的简单实例
2013/08/08 Javascript
JavaScript数值转换的三种方式总结
2014/07/31 Javascript
JS+Canvas 实现下雨下雪效果
2016/05/18 Javascript
BootstrapTable请求数据时设置超时(timeout)的方法
2017/01/22 Javascript
浅谈js for循环输出i为同一值的问题
2017/03/01 Javascript
jQuery实现在HTML文档加载完毕后自动执行某个事件的方法
2017/05/08 jQuery
解决VUE mounted 钩子函数执行时 img 未加载导致页面布局的问题
2020/07/27 Javascript
[57:09]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第一场 1月26日
2021/03/11 DOTA
简单谈谈python中的Queue与多进程
2016/08/25 Python
Python中的命令行参数解析工具之docopt详解
2017/03/27 Python
Python使用pymongo模块操作MongoDB的方法示例
2018/07/20 Python
python发送告警邮件脚本
2018/09/17 Python
python格式化输出保留2位小数的实现方法
2019/07/02 Python
Django框架序列化与反序列化操作详解
2019/11/01 Python
python实现多进程按序号批量修改文件名的方法示例
2019/12/30 Python
Python实现Word表格转成Excel表格的示例代码
2020/04/16 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
2020/05/26 Python
解决pytorch多GPU训练保存的模型,在单GPU环境下加载出错问题
2020/06/23 Python
pytorch中的weight-initilzation用法
2020/06/24 Python
C语言面试题
2013/05/19 面试题
小班重阳节活动方案
2014/02/08 职场文书
公司离职证明标准范本
2014/10/05 职场文书
2015年医务人员医德医风自我评价
2015/03/03 职场文书
社区志愿者服务心得体会
2016/01/22 职场文书