php+数据库②上传图片和读取

主要过程是通过表单上传图片,然后得到图片信息,将图片文件存在指定路径下,将图片名字存在数据库中,取出时通过制定路径+文件名称得到图片。(代码都写在一个php文件里了……)

 

1.新建数据库,在数据库中新建数据表photo,如图

 

 
2.新建php文件,写供上传文件的表单,

表单:

<form action="" method="post" enctype="multipart/form-data">
	<label for="file">Filename:</label><br />
	<input type="file" name="file" id="file" /> <br />
	<input type="submit" name="submit" value="Submit" />
</form>

 

 

 3.当上传文件点击submit时,得到图片的信息

 

if(isset($_POST['submit'])){
      $image= $_FILES["file"]["name"];// 文件名称
			$type= $_FILES["file"]["type"];//被上传文件的类型}
  
 4.将图片保存到指定文件中
if (file_exists("../source/" . $_FILES["file"]["name"])){
				echo $_FILES["file"]["name"] . " already exists. ";//如果路径中已经存在相同名字的图片
		    }else{
			    move_uploaded_file($_FILES["file"]["tmp_name"],
			    "../source/" . $_FILES["file"]["name"]);
			    echo "Stored in: " . "../source/" . $_FILES["file"]["name"];
		    }
 
 5.连接数据库,将图片名称存进数据库,(取出时使用自己的保存的统一路径,再加上数据库中保存的文件名,即可取出文件)

 

//连接数据库
	$conn=mysql_connect("localhost","root","");
	if (!$conn) 	  die('Could not connect: '.mysql_error());
	mysql_select_db("mytest",$conn);
	mysql_query("set names utf8");
         //存入数据库,例id=1
			$sqlstr1="insert into photo(id,type,photoname) values(1,'".$type."','".$image."')";
			$word=mysql_query($sqlstr1,$conn);

 
 6.显示图片,执行查询语句,得到图片名称,然后显示

$sqlstr2="select * from photo where id=1";
			$word2=mysql_query($sqlstr2,$conn);
			$thread=mysql_fetch_assoc($word2);
			if($thread){
				header('content_type:'.$thread['type']);
				echo "<img  src='../source/".$thread['photoname']."'/>";
			}

 运行结果如图

完整代码:

<html>
<body>
<form action="" method="post" enctype="multipart/form-data">
	<label for="file">Filename:</label><br />
	<input type="file" name="file" id="file" /> <br />
	<input type="submit" name="submit" value="Submit" />
</form>
<?php
//连接数据库
	$conn=mysql_connect("localhost","root","");
	if (!$conn) 	  die('Could not connect: '.mysql_error());
	mysql_select_db("mytest",$conn);
	mysql_query("set names utf8");
//当点击submit时处理
	if(isset($_POST['submit'])){
		if ($_FILES["file"]["error"] > 0){//如果上传出错
	  		echo "Error: " . $_FILES["file"]["error"] . "<br />";
	    }else{
		  	$image= $_FILES["file"]["name"];// 存储在服务器的文件的临时副本的名称
			$type= $_FILES["file"]["type"];//被上传文件的类型 

			//图片另存为自己的路径下
			if (file_exists("../source/" . $_FILES["file"]["name"])){
				echo $_FILES["file"]["name"] . " already exists. ";
		    }else{
			    move_uploaded_file($_FILES["file"]["tmp_name"],
			    "../source/" . $_FILES["file"]["name"]);
			    // echo "Stored in: " . "../source/" . $_FILES["file"]["name"];
		    }
			 //存入数据库
			$sqlstr1="insert into photo(id,type,photoname) values(1,'".$type."','".$image."')";
			$word=mysql_query($sqlstr1,$conn);			
			//取出,显示
			$sqlstr2="select * from photo where id=1";
			$word2=mysql_query($sqlstr2,$conn);
			$thread=mysql_fetch_assoc($word2);
			if($thread){
				header('content_type:'.$thread['type']);
				echo "<img  src='../source/".$thread['photoname']."'/>";
			}
	    }
	}	
?>
</body>
</html>

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值