Heim  >  Artikel  >  Backend-Entwicklung  >  Welche Funktionen gibt es in PHP, um die Upload-Funktion zu implementieren?

Welche Funktionen gibt es in PHP, um die Upload-Funktion zu implementieren?

藏色散人
藏色散人Original
2021-12-30 09:56:483845Durchsuche

Die von PHP zum Implementieren der Upload-Funktion verwendeten Funktionen sind: 1. Funktion „move_uploaded_file“; 3. Funktion „extend“;

Welche Funktionen gibt es in PHP, um die Upload-Funktion zu implementieren?

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP Version 7.1, Dell G3-Computer.

Welche Funktionen gibt es in PHP, um die Upload-Funktion zu implementieren?

Detailliertes Codebeispiel für die Implementierung der Datei-Upload-Funktion in PHP

Wir können nicht ohne das Hochladen von Dateien auskommen move_uploaded_fileFunktion Diese Funktion prüft und stellt sicher, dass die durch Datei angegebene Datei eine legal hochgeladene Datei ist (d. h. über den HTTP-Post-Upload hochgeladen). Mechanismus des PHP-Tutorials). Wenn die Datei legal ist, wird sie in die durch newloc angegebene Datei verschoben.

Wenn es sich bei der Datei nicht um eine legal hochgeladene Datei handelt, wird kein Vorgang ausgeführt und move_uploaded_file() gibt false zurück.

Wenn es sich bei der Datei um eine gültige hochgeladene Datei handelt, sie aber aus irgendeinem Grund nicht verschoben werden kann, erfolgt keine Aktion und move_uploaded_file() gibt „false“ zurück und es wird eine Warnung ausgegeben.

Werfen wir zunächst einen Blick auf die Einstellungen im Upload-Formular

<html>
<head>
<title>a simple file upload form</title>
</head>
<body>
<form enctype="multipart/form-data"
   action="<?print $_server[&#39;php_self&#39;]?>" method="post">
<p>
<input type="hidden" name="max_file_size" value="102400" />
<input type="file" name="fupload" /><br/>
<input type="submit" value="upload!" />
</p>
</form>
</body>
</html>

Die maximale Upload-Datei, die wir in unserer Haupteinstellung festgelegt haben, darf 102400 Bytes nicht überschreiten

Es ist ganz einfach, Dateien in PHP mit dem folgenden Code hochzuladen

if ( $_files[&#39;fupload&#39;][&#39;type&#39;] == "image/gif" ) {
         $source = $_files[&#39;fupload&#39;][&#39;tmp_name&#39;];
         $target = "upload/".$_files[&#39;fupload&#39;][&#39;name&#39;];
         move_uploaded_file( $source, $target );// or die ("couldn&#39;t copy");
         $size = getimagesize( $target );
         $imgstr = "<p><img width="$size[0]" height="$size[1]" ";
         $imgstr .= "src="$target" alt="uploaded image" /></p>";
         print $imgstr;
     }

Das ist alles , Unten fassen wir die Beispiele zusammen

php

<html>
<form enctype="multipart/form-data" action="" method="post">
<input type="hidden" name="max_file_size" value="6000000" /> <!--设置允许提交表单的最大字节数-->
文件上传: <input name="file" type="file" />
<input type="submit" value="上传"/>
</form>
</html>

<?
//处理程序
function extend($file_name) //定义获取文件的扩展名函数
{$extend =explode("." , $file_name);
$va=count($extend)-1;
return strtolower($extend[$va]);}
$dirname="../";//是否启用上一层路径,格式为:$dirname="../";或$dirname="http://www.3ppt.com/";等等与$dir组合使用,注意不要溢出根路径
$dir=&#39;upload/aa/bb&#39;;//设定上传目录,与上面的$dirname组合
$file=$_files[&#39;file&#39;];//从文件域表单获取文件
$filename=$file[&#39;name&#39;] ;//获取文件全名
$c_filesize=$file[&#39;size&#39;] ;//获取本地的文件大小
$extendname=extend($filename);//获取文件扩展名
if($c_filesize>200000000000)die("文件太大");//限制上传文件大小, 单位字节
//if($extendname!="jpg")die("只允许上传jpg格式的图片");//限制上传文件格式,去掉语句开头的两斜杠生效
if(!file_exists($dir));//检查目录文件夹是否存在,不存在则建立新文件夹
{
$v=split (&#39;[/.-]&#39;, $dir);
for ( $i=0 ; $i <count($v) ; $i++)
{$dirname=$dirname.$v[$i];
if(!file_exists($dirname))mkdir($dirname);
$dirname=$dirname."/";}
} //目录创建完毕
?>
<?
$dest=$dirname.date("ymdhis", time()).rand(100000,999999).".".$extendname; //设置文件名为日期加上从100000到999999的随机数和扩展名
if(file_exists($dest))die("该文件已经存在");
if(move_uploaded_file($file[&#39;tmp_name&#39;],$dest)) //调用文件上传函数
{$s_filesize=filesize($dest);//获取服务器端的文件大小
echo "文件上传成功,<a href=".$dest.">查看文件地址</a>";
echo "<br>本地文件名:".$filename;
echo "<br>远端文件名:".$dest;
echo "<br>大 小:".ceil($s_filesize/1024)." kb";
echo "<br>扩展名:".$extendname;
echo "<br>大 小:".$c_filesize." byte";}
else
{echo "还未进行文件上传";}
?>

fassen die Fehlercodes des Datei-Uploads zusammen

upload_err_ok Es liegt kein Fehler vor.

upload_err_ini_size Die hochgeladene Datei überschreitet den höchsten in der angegebenen Datei vorhandenen Wert.

Upload_err_form_size ist ein verstecktes Widget für hochgeladene Dateien, die den durch max_file_size angegebenen Maximalwert überschreiten.

Der Datei-Upload von upload_err_partial wurde abgebrochen und nur ein Teil der Datei wurde hochgeladen.

upload_err_nofile Es wurde keine Datei hochgeladen.

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWelche Funktionen gibt es in PHP, um die Upload-Funktion zu implementieren?. 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