www.adminn.cn
站长正能量分享网!

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

AD:阿里云服务器企业会员更优惠 腾讯云香港,韩国免备案服务器1.8折优惠

大部分人的图片上传都是保存一个路径到数据库,这样在插入时确实快,也符合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(); 

模板优惠价: (点击购买)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《php上传图片存入数据库示例分享》
文章链接:https://www.adminn.cn/news/8190.html
本站资源模板仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。2021.5月起,网站调整,暂不再分享免费模板。谢谢理解

扫码支付后请联系右侧QQ发送下载地址!!

源码请勿用于任何涉灰站点!净化网络,站长更有责!

支付宝扫一扫打赏