Heim  >  Artikel  >  Backend-Entwicklung  >  PHP lädt Bilder in die Datenbank hoch und zeigt sie an

PHP lädt Bilder in die Datenbank hoch und zeigt sie an

藏色散人
藏色散人nach vorne
2019-12-19 17:53:015442Durchsuche

PHP lädt Bilder in die Datenbank hoch und zeigt sie an

1. Erstellen Sie eine Datentabelle

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 zum Server 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, das Bild-Uploads verarbeitet upimage.php

<?php
if (isset($_POST[&#39;submit&#39;])) {
    $form_description = $_POST[&#39;form_description&#39;];
    $form_data_name = $_FILES[&#39;form_data&#39;][&#39;name&#39;];
    $form_data_size = $_FILES[&#39;form_data&#39;][&#39;size&#39;];
    $form_data_type = $_FILES[&#39;form_data&#39;][&#39;type&#39;];
    $form_data = $_FILES[&#39;form_data&#39;][&#39;tmp_name&#39;];
    
    $dsn = &#39;mysql:dbname=test;host=localhost&#39;;
    $pdo = new PDO($dsn, &#39;root&#39;, &#39;root&#39;);
    $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 (&#39;$form_description&#39;,&#39;$data&#39;,&#39;$form_data_name&#39;,&#39;$form_data_size&#39;,&#39;$form_data_type&#39;)");
    if ($result) {
        echo "图片已存储到数据库";
    } else {
        echo "请求失败,请重试";

Hinweis: Bilder werden in der Datenbank gespeichert als binäre Blobs Ja, so

4. php getimage.php, das das Bild anzeigt

<?php
 
    $id =2;// $_GET[&#39;id&#39;]; 为简洁,直接将id写上了,正常应该是通过用户填入的id获取的
    $dsn =&#39;mysql:dbname=test;host=localhost&#39;;
    $pdo = new PDO($dsn,&#39;root&#39;,&#39;root&#39;);
    $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][&#39;bin_data&#39;];
    $type = $result[0][&#39;filetype&#39;];
    Header( "Content-type: $type");
    echo $data;

5 Das hochgeladene Bild finden Sie unter Es gibt kein Problem, ob

PHP lädt Bilder in die Datenbank hoch und zeigt sie an

angezeigt werden kann, was beweist, dass das Bild in binärer Form in der Datenbank gespeichert wurde

Für Weitere PHP-Kenntnisse finden Sie im

PHP-Tutorial!

Das obige ist der detaillierte Inhalt vonPHP lädt Bilder in die Datenbank hoch und zeigt sie an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen