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><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

<?phpif (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形式存进数据库的,像这样

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;

5、到浏览器查看已经上传的图片,看是否可以显示

210157258e7fc9e2acae9b9068b37b1.png

是没有问题的,证明图片已经以二进制的形式存储到数据库了

更多PHP相关知识,请访问PHP教程!

更多相关文章

  1. php实现上传图片功能
  2. 利用php实现读取excel中的图片
  3. PHP生成有背景的二维码图片(代码示例)
  4. php实现抓取不带后缀的图片
  5. php实现将表单内容提交到数据库
  6. 干货丨时序数据库DolphinDB历史数据回放教程
  7. 数据库迁移搞炸了!没用这款开源神器的锅?
  8. 如何离线更新vSAN数据库
  9. IDEA同款数据库管理工具,提示太全了,用起来贼香!

随机推荐

  1. jquery兼容性问题
  2. JQuery和Struts实现Ajax文件上传
  3. 用JQuery写的一个简单的验证码功能
  4. 使用jQuery确认对话框防止上的表单回发
  5. Jquery基于ActiveX的批量上传
  6. ie8下jQuery动画没有ie7流畅,是浏览器性能
  7. 使用jquery实现点击按钮弹出层和点击空白
  8. js jquery 关闭弹出页面 并刷新父页面(win
  9. jquery怎么深复制?
  10. jquery done()不能获取外部变量