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
信用卡效验程序
Oct 09 PHP
一些php技巧与注意事项分析
Feb 03 PHP
PHP查询MySQL大量数据的时候内存占用分析
Jul 22 PHP
ThinkPHP中URL路径访问与模块控制器之间的关系
Aug 23 PHP
php获取json数据所有的节点路径
May 17 PHP
Adnroid 微信内置浏览器清除缓存
Jul 11 PHP
浅谈Laravel队列实现原理解决问题记录
Aug 19 PHP
thinkPHP5实现数据库添加内容的方法
Oct 25 PHP
php-fpm服务启动脚本的方法
Apr 27 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
Jun 16 PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
Mar 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
剖析 PHP 中的输出缓冲
2006/12/21 PHP
php判断是否为json格式的方法
2014/03/04 PHP
2014年10个最佳的PHP图像操作库
2014/07/14 PHP
PHP学习笔记之session
2018/05/06 PHP
apache集成php7.3.5的详细步骤
2019/06/20 PHP
laravel5.2表单验证,并显示错误信息的实例
2019/09/29 PHP
XML+XSL 与 HTML 两种方案的结合
2007/04/22 Javascript
js 替换
2008/02/19 Javascript
jQuery 树形结构的选择器
2010/02/15 Javascript
js一般方法改写成面向对象方法的无限级折叠菜单示例代码
2013/07/04 Javascript
关于Javascript 对象(object)的prototype
2014/05/09 Javascript
JavaScript监听和禁用浏览器回车事件实例
2015/01/31 Javascript
JavaScript更改字符串的大小写
2015/05/07 Javascript
js实现简易聊天对话框
2017/08/17 Javascript
vue2 前端搜索实现示例
2018/02/26 Javascript
vue实现键盘输入支付密码功能
2018/08/18 Javascript
AngularJS 监听变量变化的实现方法
2018/10/09 Javascript
Vue实现商品飞入购物车效果(电商项目)
2019/11/26 Javascript
深入讲解Python中面向对象编程的相关知识
2015/05/25 Python
python使用wmi模块获取windows下的系统信息 监控系统
2015/10/27 Python
Python网络爬虫实例讲解
2016/04/28 Python
Python找出微信上删除你好友的人脚本写法
2018/11/01 Python
python tkinter组件摆放方式详解
2019/09/16 Python
windows下Python安装、使用教程和Notepad++的使用教程
2019/10/06 Python
CSS3实现文字描边的2种方法(小结)
2020/02/14 HTML / CSS
Ado与Ado.net的相同与不同
2014/12/08 面试题
Python中pass语句的作用是什么
2016/06/01 面试题
介绍一下Java中的static关键字
2012/05/12 面试题
网络工程专业自荐信范文
2014/03/16 职场文书
小学综治宣传月活动总结
2014/07/02 职场文书
2014最新房贷收入证明范本
2014/09/12 职场文书
大学生英文求职信范文
2015/03/19 职场文书
2015年园林绿化工作总结
2015/05/23 职场文书
教师岗位说明书
2015/09/30 职场文书
Html5生成验证码的示例代码
2021/05/10 Javascript
logback如何自定义日志存储
2021/08/30 Java/Android