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扩展开发经验分享
Sep 06 PHP
PHP+javascript制作带提示的验证码源码分享
May 28 PHP
VB中的RasEnumConnections函数返回632错误解决方法
Jul 29 PHP
thinkphp循环结构用法实例
Nov 24 PHP
php函数重载的替代方法--伪重载详解
May 08 PHP
PHP模板引擎Smarty内建函数foreach,foreachelse用法分析
Apr 11 PHP
yii2缓存Caching基本用法示例
Jul 18 PHP
Yii2 批量插入、更新数据实例
Mar 15 PHP
PHP preg_match实现正则表达式匹配功能【输出是否匹配及匹配值】
Jul 19 PHP
PHP PDOStatement::execute讲解
Jan 31 PHP
php常用字符串查找函数strstr()与strpos()实例分析
Jun 21 PHP
php的instanceof和判断闭包Closure操作示例
Jan 26 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
一个程序下载的管理程序(三)
2006/10/09 PHP
php的chr和ord函数实现字符加减乘除运算实现代码
2011/12/05 PHP
PHP中判断变量为空的几种方法小结
2013/11/12 PHP
php中stream(流)的用法
2014/03/25 PHP
分享五个PHP7性能优化提升技巧
2015/12/07 PHP
jQuery 使用手册(一)
2009/09/23 Javascript
jquery下为Event handler传递动态参数的代码
2011/01/06 Javascript
基于KMP算法JavaScript的实现方法分析
2013/05/03 Javascript
JavaScript判断DIV内容是否为空的方法
2016/01/29 Javascript
Vue from-validate 表单验证的示例代码
2017/09/26 Javascript
详解webpack + react + react-router 如何实现懒加载
2017/11/20 Javascript
浅析JS中回调函数及用法
2018/07/25 Javascript
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
2019/02/21 Javascript
微信小程序上传文件到阿里OSS教程
2019/05/20 Javascript
js实现带箭头的进度流程
2020/03/26 Javascript
如何配置vue.config.js 处理static文件夹下的静态文件
2020/06/19 Javascript
Vue axios获取token临时令牌封装案例
2020/09/11 Javascript
[02:20]2014DOTA2西雅图邀请赛 MVP外卡赛首胜采访
2014/07/09 DOTA
python 网络编程详解及简单实例
2017/04/25 Python
python3下实现搜狗AI API的代码示例
2018/04/10 Python
关于python下cv.waitKey无响应的原因及解决方法
2019/01/10 Python
Python Pickle 实现在同一个文件中序列化多个对象
2019/12/30 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
2020/04/30 Python
JD Sports法国:英国篮球和运动时尚的领导者
2017/09/28 全球购物
环境科学专业研究生求职信
2013/10/02 职场文书
网络维护中文求职信
2014/01/03 职场文书
电台实习生求职信
2014/02/25 职场文书
商业房地产广告语
2014/03/13 职场文书
分公司任命书
2014/06/06 职场文书
2014年社区国庆节活动方案
2014/09/16 职场文书
教师个人师德工作总结2015
2015/05/12 职场文书
导游词之茶卡盐湖
2019/11/26 职场文书
详解Node.js如何处理ES6模块
2021/05/15 Javascript
vue+spring boot实现校验码功能
2021/05/27 Vue.js
Nginx实现会话保持的两种方式
2022/03/18 Servers
Python进程间的通信之语法学习
2022/04/11 Python