标签:程序 必须 管理器 sql 开始 val 字符串 empty echo
在数据库中创建表格的时候,有一个字段为image,用来保存图片,那么其类型就是blob,关于blob,百度百科是这样描述的
1 create table pic( 2 id tinyint primary key auto_increment not null, 3 image blob not null 4 )engine=myisam charset=utf8;
创建一个提交文件的表单,注意,提交文件的表单(form的属性method="post" enctype="multipart/form-data")
1 <form action="" method="post" enctype="multipart/form-data"> 2 <input type="file" name="pic" > 3 <input type="submit" name="submit"> 4 </form> 5 6 <?php 7 if(!empty($_POST)){ 8 try { 9 $pdo=new PDO("mysql:host=localhost;dbname=test","root","root"); 10 $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 11 12 $statement=$pdo->prepare("insert into pic values (:id,:image)"); 13 14 //开始读文件 15 $fp=fopen($_FILES[‘pic‘][‘tmp_name‘],"rb"); 16 $content=""; 17 $content=fread($fp,filesize($_FILES[‘pic‘][‘tmp_name‘])); 18 fclose($fp); 19 20 $statement->execute(["id"=>1,"image"=>$content]); 21 echo "the picture has been saved\n"; 22 } catch (PDOException $e) { 23 echo "failed to save the picture"; 24 echo $e->getMessage(); 25 } 26 } 27 ?>
可以中途输出content的内容,或者运行完成后从数据库中查看添加的内容,然而你却看不懂内容是什么,全是乱码,但是,你成功将图片保存到了数据库。
接下来,你可以将数据库中的图片“数据”,读出来,然后再以图片的形式展示一下,看是不是已提交的那张图片,代码如下:
1 <?php 2 try { 3 $pdo=new PDO("mysql:host=localhost;dbname=test","root","root"); 4 $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 5 $statement=$pdo->prepare("select * from pic"); 6 $statement->execute(); 7 list($id,$image)=$statement->fetch(PDO::FETCH_NUM); 8 header("Content-Type:image/png"); 9 echo $image; 10 } catch (PDOException $e) { 11 echo "failed to open the picture"; 12 echo $e->getMessage(); 13 } 14 ?>
标签:程序 必须 管理器 sql 开始 val 字符串 empty echo
原文地址:http://www.cnblogs.com/-beyond/p/7560069.html