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
PHP中static关键字原理的学习研究分析
Jul 18 PHP
PHP新手NOTICE错误常见解决方法
Dec 07 PHP
php中判断文件存在是用file_exists还是is_file的整理
Sep 12 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
Apr 25 PHP
sae使用smarty模板的方法
Dec 17 PHP
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
May 10 PHP
PHP实现下载断点续传的方法
Nov 12 PHP
使用PHP生成PDF方法详解
Jan 23 PHP
php base64 编码与解码实例代码
Mar 21 PHP
PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
Dec 25 PHP
laravel excel 上传文件保存到本地服务器功能
Nov 14 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/08 PHP
比较全的JS checkbox全选、取消全选、删除功能代码
2008/12/19 Javascript
用jQuery中的ajax分页实现代码
2011/09/20 Javascript
js简单实现用户注册信息的校验代码
2013/11/15 Javascript
jQuery平滑旋转幻灯片特效代码分享
2015/09/07 Javascript
IE8兼容Jquery.validate.js的问题
2016/12/01 Javascript
EasyUI学习之Combobox级联下拉列表(2)
2016/12/29 Javascript
JS跨域请求外部服务器的资源
2017/02/06 Javascript
JS实现上传图片实时预览功能
2017/05/22 Javascript
jquery DataTable实现前后台动态分页
2017/06/17 jQuery
vscode中vue-cli项目es-lint的配置方法
2018/07/30 Javascript
vue-cli构建vue项目的步骤详解
2019/01/27 Javascript
深入浅出vue图片路径的实现
2019/09/04 Javascript
Vue通过配置WebSocket并实现群聊功能
2019/12/31 Javascript
Python操作Sql Server 2008数据库的方法详解
2018/05/17 Python
神经网络相关之基础概念的讲解
2018/12/29 Python
利用python在excel里面直接使用sql函数的方法
2019/02/08 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
2019/02/21 Python
python反编译学习之字节码详解
2019/05/19 Python
python多继承(钻石继承)问题和解决方法简单示例
2019/10/21 Python
K最近邻算法(KNN)---sklearn+python实现方式
2020/02/24 Python
Django之腾讯云短信的实现
2020/06/12 Python
Python 如何在字符串中插入变量
2020/08/01 Python
CSS3控制HTML元素动画效果
2014/02/08 HTML / CSS
一篇文章带你学习CSS3图片边框
2020/11/04 HTML / CSS
html5拖拽应用记录及注意点
2020/05/27 HTML / CSS
Farfetch巴西官网:奢侈品牌时尚购物平台
2020/10/19 全球购物
请解释virtual关键字的含义
2015/06/17 面试题
医院护士专业个人的求职信
2013/12/09 职场文书
小学庆六一活动方案
2014/02/28 职场文书
主办会计岗位职责
2014/03/13 职场文书
超市创业计划书
2014/04/24 职场文书
群众路线班子对照检查材料
2014/09/25 职场文书
博士给导师的自荐信
2015/03/06 职场文书
会计稽核岗位职责
2015/04/13 职场文书
Vue实现tab导航栏并支持左右滑动功能
2021/06/28 Vue.js