Heim  >  Artikel  >  Backend-Entwicklung  >  Datei- und Formularvorgänge sowie Datenbankvorgänge, die beim Hochladen von PHP-Dateien beteiligt sind

Datei- und Formularvorgänge sowie Datenbankvorgänge, die beim Hochladen von PHP-Dateien beteiligt sind

墨辰丷
墨辰丷Original
2018-06-08 16:44:172493Durchsuche

In diesem Artikel werden hauptsächlich die Datei- und Formularvorgänge sowie die Datenbankvorgänge vorgestellt, die beim Hochladen von PHP-Dateien beteiligt sind. Ich hoffe, dass er für alle hilfreich ist.

Das Beispiel in diesem Artikel beschreibt die Methode zum Hochladen von Dateien und deren Speicherung in der Datenbank in PHP. Die Details lauten wie folgt:

Die Datei show_add.php lautet wie folgt:

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

show_info.php-Datei lautet wie folgt:

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

submit.php-Datei lautet wie folgt :

<?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 "你没有上传任何文件";  
  }  
?>

upload.php-Datei lautet wie folgt:



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

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.

Verwandte Empfehlungen:

Ph+Ajax-Echtzeiteingabe, automatische Suchabgleichsmethode

Basierend auf jQuery implementiert eine Bewertungsfunktion über PHP und MySQL

Anwendung von PHP-Variablen, Arrays, regulären Ausdrücken und Vorlagen

Das obige ist der detaillierte Inhalt vonDatei- und Formularvorgänge sowie Datenbankvorgänge, die beim Hochladen von PHP-Dateien beteiligt sind. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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