当前位置:首页 > PHP教程 > php图像处理 > 列表

php上传图片存入数据库示例分享

发布:smiling 来源: PHP粉丝网  添加日期:2020-10-27 13:40:16 浏览: 评论:0 

大部分人的图片上传都是保存一个路径到数据库,这样在插入时确实快,也符合web的特点,但是在删除时就很麻烦,需要找到文件并删除,该代码能够把代码直接存入数据库,删除时一并删除。请注意:这样的话数据库大小会激增,请酌情使用

表结构代码如下:

  1. CREATE TABLE `upload` ( 
  2.   `id` int(10) unsigned NOT NULL AUTO_INCREMENT, 
  3.   `type` varchar(20) NOT NULL
  4.   `data` mediumblob NOT NULL
  5.   PRIMARY KEY (`id`) 
  6. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; 

index.html 代码如下:

  1. <!doctype html> 
  2.     <html> 
  3. <head> 
  4.     <title> 
  5.         Post-Image 
  6.     </title> 
  7. </head> 
  8. <body> 
  9. <form action="post.php" method="post" enctype="multipart/form-data"> 
  10.     <input type="file" name="file" id="file"/> 
  11.     <input type="submit" value="OK"/> 
  12. </form> 
  13. </body> 
  14. </html> 

post.php 代码如下:

  1. <?php 
  2. if ($_FILES["file"]["error"] > 0) 
  3.     echo "Error: " . $_FILES["file"]["error"] . "<br />"
  4. else 
  5.     $type = $_FILES["file"]["type"]; 
  6.     $size = $_FILES['file']['size']; 
  7.     $tmp=$_FILES["file"]["tmp_name"]; 
  8.     $fp = fopen($tmp,'rb'); 
  9.     $data = bin2hex(fread($fp,$size)); 
  10.     $dsn='mysql:host=localhost;dbname=test'
  11.     echo '<pre>'
  12.     try{ 
  13.         $pdo = new PDO($dsn,'root','root'); 
  14.         $pdo->exec("INSERT INTO `upload`(`type`,`data`) values ('$type',0x$data)"); 
  15.         $id = $pdo->lastInsertId(); 
  16.         echo 'upload success!<a href="view.php?id='.$id.'">View</a>'
  17.         $pdo = null; 
  18.     }catch (PDOException $e){ 
  19.         echo $e->getMessage(); 
  20.     } 
  21.     echo '</pre>'
  22.     fclose($fp); 

view.php 代码如下:

  1. <?php 
  2. $id = $_GET['id']; 
  3. if(is_numeric($id)){ 
  4.     $dsn='mysql:host=localhost;dbname=test'
  5.     try{ 
  6.         $pdo = new PDO($dsn,'root','root'); 
  7.         $rs = $pdo->query('select * from `upload`  where `id`='.$id); 
  8.         $row = $rs->fetchAll(); 
  9.         $data = $row[0]; 
  10.         header("Content-Type:${data['type']}"); 
  11.         echo $data['data']; 
  12.         $pdo = null; 
  13.     }catch (PDOException $e){ 
  14.         echo $e->getMessage(); 
  15.     } 
  16. }else
  17.     exit(); 

Tags: php上传图片

分享到: