当前位置:Gxlcms > 数据库问题 > 运用PDO存储将图片、音频文件存入数据库

运用PDO存储将图片、音频文件存入数据库

时间:2021-07-01 10:21:17 帮助过:28人阅读

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 ?>

 

运用PDO存储将图片、音频文件存入数据库

标签:程序   必须   管理器   sql   开始   val   字符串   empty   echo   

人气教程排行