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环境――Appserv
Dec 13 PHP
php时区转换转换函数
Jan 07 PHP
php实现mysql封装类示例
May 07 PHP
PHP获取指定函数定义在哪个文件中以及其所在的行号实例
May 08 PHP
如何让CI框架支持service层
Oct 29 PHP
php使用递归计算文件夹大小
Dec 24 PHP
PHP抽奖算法程序代码分享
Oct 08 PHP
Laravel的throttle中间件失效问题解决方法
Oct 09 PHP
php中str_pad()函数用法分析
Mar 28 PHP
PHP实现动态添加XML中数据的方法
Mar 30 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
Oct 02 PHP
laravel 创建命令行命令的图文教程
Oct 23 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
需要使用php模板的朋友必看的很多个顶级PHP模板引擎比较分析
2008/05/26 PHP
php简单实现多字节字符串翻转的方法
2015/03/31 PHP
PHP人民币金额转大写实例代码
2015/10/02 PHP
使用Apache的rewrite
2021/03/09 Servers
Prototype RegExp对象 学习
2009/07/19 Javascript
不使用中间变量,交换int型的 a, b两个变量的值。
2010/10/29 Javascript
javascript中的数字与字符串相加实例分析
2011/08/14 Javascript
常用的jquery模板插件——jQuery Boilerplate介绍
2014/09/23 Javascript
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
2016/05/12 Javascript
快速获取/设置iframe内对象元素的几种js实现方法
2016/05/20 Javascript
TypeScript学习之强制类型的转换
2016/12/27 Javascript
图片懒加载插件实例分享(含解析)
2017/01/09 Javascript
详解微信小程序 通过控制CSS实现view隐藏与显示
2017/05/24 Javascript
BootStrap模态框和select2合用时input无法获取焦点的解决方法
2017/09/01 Javascript
Vue Echarts实现可视化世界地图代码实例
2019/05/07 Javascript
layui复选框的全选与取消实现方法
2019/09/02 Javascript
Vue监听滚动实现锚点定位(双向)示例
2019/11/13 Javascript
JavaScript onclick事件使用方法详解
2020/05/15 Javascript
举例讲解Python中的身份运算符的使用方法
2015/10/13 Python
简单谈谈python中的语句和语法
2017/08/10 Python
numpy自动生成数组详解
2017/12/15 Python
Python类的继承和多态代码详解
2017/12/27 Python
Python调用adb命令实现对多台设备同时进行reboot的方法
2018/10/15 Python
pandas修改DataFrame列名的实现方法
2019/02/22 Python
Python3.4学习笔记之列表、数组操作示例
2019/03/01 Python
Python中的类与类型示例详解
2019/07/10 Python
Python企业编码生成系统之系统主要函数设计详解
2019/07/26 Python
使用python实现哈希表、字典、集合操作
2019/12/22 Python
Python super()方法原理详解
2020/03/31 Python
CSS3绘制不规则图形的一些方法示例
2015/11/07 HTML / CSS
EM Cosmetics官网:由彩妆大神Michelle Phan创办的独立品牌
2020/04/27 全球购物
自动化专业个人求职信范文
2013/11/29 职场文书
家居装修公司创业计划书范文
2014/03/20 职场文书
设计师求职信模板
2014/05/06 职场文书
学习十八大的心得体会
2014/09/01 职场文书
教师个人工作总结范文2015
2015/10/14 职场文书