萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> php上傳圖片存入數據庫示例分享

php上傳圖片存入數據庫示例分享

 這篇文章主要介紹了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(); }
copyright © 萬盛學電腦網 all rights reserved