Heim > php教程 > PHP源码 > Hauptteil

PHP实现上传文件并存进数据库的方法_php技巧

PHP中文网
Freigeben: 2016-05-25 17:13:22
Original
1061 Leute haben es durchsucht

这篇文章主要介绍了PHP实现上传文件并存进数据库的方法,涉及php文件上传所涉及的文件与表单操作及数据库操作相关技巧,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了PHP实现上传文件并存进数据库的方法。分享给大家供大家参考。具体如下:

show_add.php文件如下:

<?php     
  if(!isset($_REQUEST[&#39;id&#39;]) or $_REQUEST[&#39;id&#39;]=="") die("error: id none");
  $id = $_REQUEST[&#39;id&#39;];
  //定位记录,读出
  $conn=mysql_connect("localhost","root","admin");
  if(!$conn) die("error: mysql connect failed");
  mysql_select_db("nokiapaymentplat",$conn);
  $sql = "select * from receive where id=$id";
  $result = mysql_query($sql,$conn);
  if(!$result) die("error: mysql query");
  $num=mysql_num_rows($result);
  if($num<1) die("error: no this recorder");
  $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;
?>
Nach dem Login kopieren

show_info.php文件如下:

<?php 
   if(!isset($_REQUEST[&#39;id&#39;]) or $_REQUEST[&#39;id&#39;]=="") die("error: id none");
  $id = $_REQUEST[&#39;id&#39;];
  //定位记录,读出
  $conn=mysql_connect("localhost","root","admin");
  if(!$conn) die("error: mysql connect failed");
  mysql_select_db("nokiapaymentplat",$conn);
  $sql = "select file_name ,file_size from receive where id=$id";
  $result = mysql_query($sql,$conn);
  if(!$result) die(" error: mysql query");
  //如果没有指定的记录,则报错
  $num=mysql_num_rows($result);
  if($num<1) die("error: no this recorder");
  //下面两句程序也可以这么写
  //$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>The file&#39;s name - $name";  
  echo "<br>The file&#39;s size - $size"; 
  echo "<br><a href=show_add.php?id=$id>附件</a>";
?>
Nach dem Login kopieren

submit.php文件如下:

<?php  
  if(is_uploaded_file($_FILES[&#39;myfile&#39;][&#39;tmp_name&#39;])) {
  //有了上传文件了 
  $myfile=$_FILES["myfile"];
    //设置超时限制时间,缺省时间为 30秒,设置为0时为不限时
    $time_limit=60;     
    set_time_limit($time_limit); //
    //把文件内容读到字符串中
    $fp=fopen($myfile[&#39;tmp_name&#39;], "rb");
    if(!$fp) die("file open error");
    $file_data = addslashes(fread($fp, filesize($myfile[&#39;tmp_name&#39;])));
    fclose($fp);
    unlink($myfile[&#39;tmp_name&#39;]); 
    //文件格式,名字,大小
    $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 : mysql connect failed");
    mysql_select_db("nokiapaymentplat",$conn);
    $sql="insert into receive 
    (file_data,file_type,file_name,file_size) 
    values (&#39;$file_data&#39;,&#39;$file_type&#39;,&#39;$file_name&#39;,$file_size)";
    $result=mysql_query($sql,$conn);
    //下面这句取出了刚才的insert语句的id
    $id=mysql_insert_id();
    mysql_close($conn);
    set_time_limit(30); //恢复缺省超时设置 
    echo "上传成功--- ";
    echo "<a href=&#39;show_info.php?id=$id&#39;>显示上传文件信息</a>";
  }  
  else {  
    echo "你没有上传任何文件";  
  }  
?>
Nach dem Login kopieren

upload.php文件如下:



<html>  
<head>  
<title>文件上传表单</title>  
</head>  
<body>  
<table>  
<form enctype=&#39;multipart/form-data&#39; name=&#39;myform&#39; action=&#39;submit.php&#39; 
method=&#39;post&#39;>  
<INPUT TYPE = "hidden" NAME = "MAX_FILE_SIZE" VALUE ="1000000">
<tr><td>选择上传文件</td><td>
<input name=&#39;myfile&#39; type=&#39;file&#39;></td></tr> 
<tr><td colspan=&#39;2&#39;><input name=&#39;submit&#39; value=&#39;上传&#39;  type=&#39;submit&#39;></td></tr>  
</table>  
</body>  
</html>
Nach dem Login kopieren

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage