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
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=utf82 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['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 "请求失败,请重试";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['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 Das hochgeladene Bild finden Sie unter Es gibt kein Problem, ob 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!