Maison  >  Article  >  développement back-end  >  Quelles sont les fonctions en php pour implémenter la fonction upload ?

Quelles sont les fonctions en php pour implémenter la fonction upload ?

藏色散人
藏色散人original
2021-12-30 09:56:483915parcourir

Les fonctions utilisées par php pour implémenter la fonction de téléchargement sont : 1. la fonction move_uploaded_file ; 2. la fonction getimagesize ; 3. la fonction extend ;

Quelles sont les fonctions en php pour implémenter la fonction upload ?

L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur Dell G3.

Quelles sont les fonctions en php pour implémenter la fonction upload ?

Exemple de code détaillé de la fonction de téléchargement de fichiers implémentée par PHP

Nous ne pouvons pas nous passer de move_uploaded_filefonction Cette fonction vérifie et garantit que le fichier spécifié par fichier est un fichier téléchargé légal (c'est-à-dire téléchargé via le mécanisme de téléchargement de publication http de le tutoriel php ). Si le fichier est légal, il est déplacé vers le fichier spécifié par newloc.

Si le fichier n'est pas un fichier téléchargé légal, aucune opération ne se produira et move_uploaded_file() renverra false.

Si le fichier est un fichier téléchargé valide mais ne peut pas être déplacé pour une raison quelconque, aucune action ne se produira et move_uploaded_file() renverra false et un avertissement sera émis.

Jetons d'abord un coup d'œil aux paramètres du formulaire de téléchargement

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

Le fichier de téléchargement maximum que nous avons défini dans notre paramètre principal ne peut pas dépasser 102400 octets

Il est très simple de télécharger des fichiers en php comme suit le code

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

C'est tout , Ci-dessous, nous résumons les exemples

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 "还未进行文件上传";}
?>

résumons les codes d'erreur du téléchargement de fichier

upload_err_ok Il n'y a pas d'erreur.

upload_err_ini_size Le fichier téléchargé dépasse la valeur la plus élevée présente dans le fichier spécifié.

Upload_err_form_size est un widget caché pour les fichiers téléchargés qui dépassent la valeur maximale spécifiée par max_file_size.

Le téléchargement du fichier upload_err_partial a été annulé et seule une partie du fichier a été téléchargée.

upload_err_nofile Aucun fichier n'a été téléchargé.

Apprentissage recommandé : "Tutoriel vidéo PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn