PHP实现上传文件并存进数据库的方法
本文实例讲述了PHP实现上传文件并存进数据库的方法。分享给大家供大家参考。具体如下:
show_add.php文件如下:
<?php if(!isset($_REQUEST['id'])or$_REQUEST['id']=="")die("error:idnone"); $id=$_REQUEST['id']; //定位记录,读出 $conn=mysql_connect("localhost","root","admin"); if(!$conn)die("error:mysqlconnectfailed"); mysql_select_db("nokiapaymentplat",$conn); $sql="select*fromreceivewhereid=$id"; $result=mysql_query($sql,$conn); if(!$result)die("error:mysqlquery"); $num=mysql_num_rows($result); if($num<1)die("error:nothisrecorder"); $data=mysql_result($result,0,"file_data"); $type=mysql_result($result,0,"file_type"); $name=mysql_result($result,0,"file_name"); mysql_close($conn); //先输出相应的文件头,并且恢复原来的文件名 header("Content-type:$type"); header("Content-Disposition:attachment;filename=$name"); echo$data; ?>
show_info.php文件如下:
<?php if(!isset($_REQUEST['id'])or$_REQUEST['id']=="")die("error:idnone"); $id=$_REQUEST['id']; //定位记录,读出 $conn=mysql_connect("localhost","root","admin"); if(!$conn)die("error:mysqlconnectfailed"); mysql_select_db("nokiapaymentplat",$conn); $sql="selectfile_name,file_sizefromreceivewhereid=$id"; $result=mysql_query($sql,$conn); if(!$result)die("error:mysqlquery"); //如果没有指定的记录,则报错 $num=mysql_num_rows($result); if($num<1)die("error:nothisrecorder"); //下面两句程序也可以这么写 //$row=mysql_fetch_object($result); //$name=$row->name; //$size=$row->size; $name=mysql_result($result,0,"file_name"); $size=mysql_result($result,0,"file_size"); mysql_close($conn); echo"<hr>上传的文件的信息:"; echo"<br>Thefile'sname-$name"; echo"<br>Thefile'ssize-$size"; echo"<br><ahref=show_add.php?id=$id>附件</a>"; ?>
submit.php文件如下:
<?php if(is_uploaded_file($_FILES['myfile']['tmp_name'])){ //有了上传文件了 $myfile=$_FILES["myfile"]; //设置超时限制时间,缺省时间为30秒,设置为0时为不限时 $time_limit=60; set_time_limit($time_limit);// //把文件内容读到字符串中 $fp=fopen($myfile['tmp_name'],"rb"); if(!$fp)die("fileopenerror"); $file_data=addslashes(fread($fp,filesize($myfile['tmp_name']))); fclose($fp); unlink($myfile['tmp_name']); //文件格式,名字,大小 $file_type=$myfile["type"]; $file_name=$myfile["name"]; $file_size=$myfile["size"]; die($file_type); //连接数据库,把文件存到数据库中 $conn=mysql_connect("localhost","root","admin"); if(!$conn)die("error:mysqlconnectfailed"); mysql_select_db("nokiapaymentplat",$conn); $sql="insertintoreceive (file_data,file_type,file_name,file_size) values('$file_data','$file_type','$file_name',$file_size)"; $result=mysql_query($sql,$conn); //下面这句取出了刚才的insert语句的id $id=mysql_insert_id(); mysql_close($conn); set_time_limit(30);//恢复缺省超时设置 echo"上传成功---"; echo"<ahref='show_info.php?id=$id'>显示上传文件信息</a>"; } else{ echo"你没有上传任何文件"; } ?>
upload.php文件如下:
<html> <head> <title>文件上传表单</title> </head> <body> <table> <formenctype='multipart/form-data'name='myform'action='submit.php' method='post'> <INPUTTYPE="hidden"NAME="MAX_FILE_SIZE"VALUE="1000000"> <tr><td>选择上传文件</td><td> <inputname='myfile'type='file'></td></tr> <tr><tdcolspan='2'><inputname='submit'value='上传'type='submit'></td></tr> </table> </body> </html>
希望本文所述对大家的PHP程序设计有所帮助。