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程序设计有所帮助。