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生成便于打印的网页
Oct 09 PHP
基于mysql的论坛(1)
Oct 09 PHP
php url地址栏传中文乱码解决方法集合
Jun 25 PHP
php中神奇的fastcgi_finish_request
May 02 PHP
php实现从上传文件创建缩略图的方法
Apr 02 PHP
php项目中百度 UEditor 简单安装调试和调用
Jul 15 PHP
以实例全面讲解PHP中多进程编程的相关函数的使用
Aug 18 PHP
Laravel搭建后台登录系统步骤详解
Jul 26 PHP
PHP查询大量数据内存耗尽问题的解决方法
Oct 28 PHP
PHP用正则匹配form表单中所有元素的类型和属性值实例代码
Feb 28 PHP
laravel框架实现去掉URL中index.php的方法
Oct 12 PHP
浅析PHP中的 inet_pton 网络函数
Dec 16 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
使用数据库保存session的方法
2006/10/09 PHP
php printf输出格式使用说明
2010/12/05 PHP
php操作JSON格式数据的实现代码
2011/12/24 PHP
php天翼开放平台短信发送接口实现方法
2014/12/22 PHP
php去掉文件前几行的方法
2015/07/29 PHP
PHP的消息通信机制测试实例
2016/11/10 PHP
jquery异步循环获取功能实现代码
2010/09/19 Javascript
jquery利用命名空间移除绑定事件的方法
2015/03/11 Javascript
jQuery获得子元素个数的方法
2015/04/14 Javascript
jQuery实现首页顶部可伸缩广告特效代码
2015/04/15 Javascript
javascirpt实现2个iframe之间传值的方法
2016/06/30 Javascript
HTML页面定时跳转方法解析(2种任选)
2016/12/22 Javascript
微信小程序 本地数据存储实例详解
2017/04/13 Javascript
vue.js实现三级菜单效果
2019/10/19 Javascript
vue路由缓存的几种实现方式小结
2020/02/02 Javascript
jquery实现图片放大镜效果
2020/12/23 jQuery
[13:21]DOTA2国际邀请赛采访专栏:RSnake战队国士无双,Fnatic.Fly
2013/08/06 DOTA
[02:49]2018DOTA2亚洲邀请赛主赛事决赛日战况回顾 Mineski鏖战5局夺得辉耀
2018/04/10 DOTA
python在线编译器的简单原理及简单实现代码
2018/02/02 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
2019/05/15 Python
Python任意字符串转16, 32, 64进制的方法
2019/06/12 Python
解决Pycharm 导入其他文件夹源码的2种方法
2020/02/12 Python
Python反爬虫伪装浏览器进行爬虫
2020/02/28 Python
基于python实现MQTT发布订阅过程原理解析
2020/07/27 Python
Numpy中np.max的用法及np.maximum区别
2020/11/27 Python
解决TensorFlow训练模型及保存数量限制的问题
2021/03/03 Python
CSS3实现多样的边框效果
2018/05/04 HTML / CSS
FORZIERI澳大利亚站:全球顶级奢华配饰精品店
2016/12/31 全球购物
英国地毯卖家:The Rug Seller
2019/07/18 全球购物
教育学专业毕业生的自我鉴定
2013/11/26 职场文书
课程改革实施方案
2014/03/16 职场文书
乔迁之喜主持词
2014/03/27 职场文书
2015国庆66周年宣传语
2015/07/14 职场文书
2016年小学端午节活动总结
2016/04/01 职场文书
教你使用一行Python代码玩遍童年的小游戏
2021/08/23 Python
python如何将mat文件转为png
2022/07/15 Python