这篇文章将为大家详细讲解有关php中怎么将上传的图片存入数据库,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
表结构
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(); }
关于php中怎么将上传的图片存入数据库就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。