php上传图片到MySQL数据库代码如下

效果图入下:

用到两个php文件 index.php上传图片 img.php获取图片

在这里插入图片描述

index.php代码如下:


//封装连接数据库的类
class Mysql{
  public $link;
  public function __construct(){
    $cfg = [
      'host' => '127.0.0.1',
      'user' => 'root',
      'pwd' => '',
      'db' => 'image',
      'charset' => 'utf8'
    ];
    //连接数据库 i=>improvement 连接数据库加强版
    $this-> link = mysqli_connect($cfg['host'],$cfg['user'],$cfg['pwd'], $cfg['db']);
    //mysqli_query对数据库执行一次查询
    mysqli_query($this->link,'set names'.$cfg['charset']);
  }
  public function query($sql){
    return mysqli_query($this->link,$sql);
  }
}

//上传图片
if( count($_FILES)>0 ){
  //调用数据库
  $mysql = new Mysql;
  //获取图片内容
  $imgData = addslashes(file_get_contents($_FILES['img']['tmp_name']));
  //获取图片长宽类型等信息
  $imgPro = getimagesize($_FILES['img']['tmp_name']);
  //这是一条sql执行语句 写入图片类型与图片信息;
  $sql = "insert into img (imgtype,imgdata) values('".$imgPro['mime']."','".$imgData."')";
  //执行这条语句
  $res = $mysql->query($sql);
  //执行的返回结果
  var_dump($res);
}
?>

<form action="" method="post" enctype="multipart/form-data">
  <input type="file" name="img" >
  <button type="submit" name="button">点击提交</button>
</form>

img.php代码如下:


//取数据库内图片:
//连接数据库 (端口,账号,密码,数据库名)
$link = mysqli_connect('localhost','root','','image');
//执行sql语句 设置编码格式
mysqli_query($link,'set names utf8');

//通过url的get请求的id值获取图片 默认第一张
if( isset($_GET['id']) ){
  //搜索imgid=id的数据
  $sql = 'select imgtype,imgdata from img where imgid='.$_GET['id'];
}else{
  //默认搜索imgid=1的数据
  $sql = 'select imgtype,imgdata from img where imgid=1';
}
//执行$sql搜索语句
$res = mysqli_query($link,$sql);
//取出
while( $row = mysqli_fetch_assoc($res)){
  header('Content-Type:'.$row['imgtype']);
  echo $row['imgdata'];
}

你可能感兴趣的:(PHP,PHP)