Heim  >  Artikel  >  Backend-Entwicklung  >  Ein Beispiel für das Hochladen von Bildern und deren Speicherung in der Datenbank über PHP

Ein Beispiel für das Hochladen von Bildern und deren Speicherung in der Datenbank über PHP

jacklove
jackloveOriginal
2018-06-09 11:27:096865Durchsuche

php-Beispiel für das Hochladen von Bildern und deren Speicherung in der Datenbank

php lädt Bilder hoch, im Allgemeinen mit der Methode move_uploaded_file um sie auf dem Server zu speichern. Wenn eine Website jedoch über mehrere Server verfügt, muss sie Bilder für den normalen Gebrauch auf allen Servern veröffentlichen (mit Ausnahme derjenigen, die Bildserver verwenden)

Wenn die Bilddaten in der Datenbank gespeichert werden, Dateifreigabe kann zwischen mehreren Servern erreicht werden, um Platz zu sparen.

Zuallererst handelt es sich bei der Bilddatei um Binärdaten, daher müssen die Binärdaten in der MySQL-Datenbank gespeichert werden.

MySQL-Datenbank bietet den BLOB-Typ zum Speichern großer Datenmengen. BLOB ist ein binäres Objekt, das Daten unterschiedlicher Größe aufnehmen kann.

Es gibt vier Arten von BLOBs, die bis auf die maximale Menge an gespeicherten Informationen gleich sind. Je nach Bedarf können unterschiedliche Typen verwendet werden.

TinyBlob Maximum 255B

Blob Maximum 65K

MediumBlob Maximum 16M

LongBlob Maximum 4G

DatentabelleFoto, zum Speichern von Bilddaten verwendet, die Struktur ist wie folgt:

CREATE TABLE `photo` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `type` varchar(100) NOT NULL,
  `binarydata` mediumblob NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


upload_image_todb.php

<?php
// 连接数据库
$conn=@mysql_connect("localhost","root","")  or die(mysql_error());
@mysql_select_db(&#39;demo&#39;,$conn) or die(mysql_error());
// 判断action
$action = isset($_REQUEST[&#39;action&#39;])? $_REQUEST[&#39;action&#39;] : &#39;&#39;;
// 上传图片
if($action==&#39;add&#39;){
    $image = mysql_escape_string(file_get_contents($_FILES[&#39;photo&#39;][&#39;tmp_name&#39;]));
    $type = $_FILES[&#39;photo&#39;][&#39;type&#39;];
    $sqlstr = "insert into photo(type,binarydata) values(&#39;".$type."&#39;,&#39;".$image."&#39;)";
    @mysql_query($sqlstr) or die(mysql_error());
    header(&#39;location:upload_image_todb.php&#39;);
    exit();
// 显示图片
}elseif($action==&#39;show&#39;){
    $id = isset($_GET[&#39;id&#39;])? intval($_GET[&#39;id&#39;]) : 0;
    $sqlstr = "select * from photo where id=$id";
    $query = mysql_query($sqlstr) or die(mysql_error());
    
    $thread = mysql_fetch_assoc($query);
    
    if($thread){
        header(&#39;content-type:&#39;.$thread[&#39;type&#39;]);
        echo $thread[&#39;binarydata&#39;];
        exit();
    }
}else{
// 显示图片列表及上传表单
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <title> upload image to db demo </title>
 </head>
 <body>
  <form name="form1" method="post" action="upload_image_todb.php" enctype="multipart/form-data">
  <p>图片:<input type="file" name="photo"></p>
  <p><input type="hidden" name="action" value="add"><input type="submit" name="b1" value="提交"></p>
  </form>
<?php
    $sqlstr = "select * from photo order by id desc";
    $query = mysql_query($sqlstr) or die(mysql_error());
    $result = array();
    while($thread=mysql_fetch_assoc($query)){
        $result[] = $thread;
    }
    foreach($result as $val){
        echo &#39;<p><img src="upload_image_todb.php?action=show&id=&#39;.$val[&#39;id&#39;].&#39;&t=&#39;.time().&#39;" width="150"></p>&#39;;
    }
?>
 </body>
</html>
<?php
}
?>


In diesem Artikel wird erläutert, wie Sie Bilder über PHP hochladen und in der Datenbank speichern. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

So senden und empfangen Sie Streaming-Dateien über PHP

Wie Sie Bilder teilweise über PHP mosaikieren

Erklärung, wie man den Datei-MIME-Typ über PHP erhält

Das obige ist der detaillierte Inhalt vonEin Beispiel für das Hochladen von Bildern und deren Speicherung in der Datenbank über PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn