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 相关文章推荐
ajax+php打造进度条 readyState各状态
Mar 20 PHP
纯php打造的tab选项卡效果代码(不用js)
Dec 29 PHP
PHP的范围解析操作符(::)的含义分析说明
Jul 03 PHP
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
Jun 17 PHP
ThinkPHP实现将本地文件打包成zip下载
Jun 26 PHP
php生成不重复随机数、数组的4种方法分享
Mar 30 PHP
php读取torrent种子文件内容的方法(测试可用)
May 03 PHP
php实现贪吃蛇小游戏
Jul 26 PHP
php中的单引号、双引号和转义字符详解
Feb 16 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
Sep 29 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
Aug 17 PHP
PHP实现负载均衡的加权轮询方法分析
Aug 22 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内存管理之谁动了我的内存
2013/06/20 PHP
php常用字符串处理函数实例分析
2014/11/22 PHP
5款适合PHP使用的HTML编辑器推荐
2015/07/03 PHP
jquery 滚动条事件简单实例
2013/07/12 Javascript
jquery插件tytabs.jquery.min.js实现渐变TAB选项卡效果
2015/08/25 Javascript
在javaScript中检测数据类型的几种方式小结
2017/03/04 Javascript
原生JS实现图片网格式渐显、渐隐效果
2017/06/05 Javascript
Node.js利用js-xlsx处理Excel文件的方法详解
2017/07/05 Javascript
js 概率计算(简单版)
2017/09/12 Javascript
基于复选框demo(分享)
2017/09/27 Javascript
D3.js实现拓扑图的示例代码
2018/06/30 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
AngularJS实现的自定义过滤器简单示例
2019/02/02 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
2020/07/22 Javascript
vant 时间选择器--开始时间和结束时间实例
2020/11/04 Javascript
python实现给字典添加条目的方法
2014/09/25 Python
Python使用smtplib模块发送电子邮件的流程详解
2016/06/27 Python
selenium+python实现1688网站验证码图片的截取功能
2018/08/14 Python
如何在python字符串中输入纯粹的{}
2018/08/22 Python
10 分钟快速入门 Python3的教程
2019/01/29 Python
解决python打不开文件(文件不存在)的问题
2019/02/18 Python
python 随机生成10位数密码的实现代码
2019/06/27 Python
用python给自己做一款小说阅读器过程详解
2019/07/11 Python
详解pyinstaller selenium python3 chrome打包问题
2019/10/18 Python
pytorch逐元素比较tensor大小实例
2020/01/03 Python
使用 Python 遍历目录树的方法
2020/02/29 Python
Debenhams爱尔兰:英国知名的百货公司
2017/01/02 全球购物
Vuori官网:运动服装的终级表现
2021/01/27 全球购物
估算杭州有多少软件工程师
2015/08/11 面试题
环境保护建议书
2014/08/26 职场文书
小学红领巾广播稿(3篇)
2014/09/13 职场文书
高中生打架检讨书1000字
2015/02/17 职场文书
复试通知单模板
2015/04/24 职场文书
redis哨兵常用命令和监控示例详解
2021/05/27 Redis
Python OpenCV实现图像模板匹配详解
2022/04/07 Python
SpringBoot前端后端分离之Nginx服务器下载安装过程
2022/08/14 Servers