這篇文章主要介紹了php上傳圖片存入數據庫示例,需要的朋友可以參考下
大部分人的圖片上傳都是保存一個路徑到數據庫,這樣在插入時確實快,也符合web的特點,但是在刪除時就很麻煩,需要找到文件並刪除,該代碼能夠把代碼直接存入數據庫,刪除時一並刪除。請注意:這樣的話數據庫大小會激增,請酌情使用 表結構 代碼如下: CREATE TABLE `upload` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `type` varchar(20) NOT NULL, `data` mediumblob NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; index.html 代碼如下: <!doctype html> <html> <head> <title> Post-Image </title> </head> <body> <form action="post.php" method="post" enctype="multipart/form-data"> <input type="file" name="file" id="file"/> <input type="submit" value="OK"/> </form> </body> </html> post.php 代碼如下: <?php if ($_FILES["file"]["error"] > 0) { echo "Error: " . $_FILES["file"]["error"] . "<br />"; } else { $type = $_FILES["file"]["type"]; $size = $_FILES['file']['size']; $tmp=$_FILES["file"]["tmp_name"]; $fp = fopen($tmp,'rb'); $data = bin2hex(fread($fp,$size)); $dsn='mysql:host=localhost;dbname=test'; echo '<pre>'; try{ $pdo = new PDO($dsn,'root','root'); $pdo->exec("INSERT INTO `upload`(`type`,`data`) values ('$type',0x$data)"); $id = $pdo->lastInsertId(); echo 'upload success!<a href="view.php?id='.$id.'">View</a>'; $pdo = null; }catch (PDOException $e){ echo $e->getMessage(); } echo '</pre>'; fclose($fp); } view.php 代碼如下: <?php $id = $_GET['id']; if(is_numeric($id)){ $dsn='mysql:host=localhost;dbname=test'; try{ $pdo = new PDO($dsn,'root','root'); $rs = $pdo->query('select * from `upload` where `id`='.$id); $row = $rs->fetchAll(); $data = $row[0]; header("Content-Type:${data['type']}"); echo $data['data']; $pdo = null; }catch (PDOException $e){ echo $e->getMessage(); } }else{ exit(); }