ホームページ  >  記事  >  バックエンド開発  >  アップロード機能を実装するためのphpの関数は何ですか?

アップロード機能を実装するためのphpの関数は何ですか?

藏色散人
藏色散人オリジナル
2021-12-30 09:56:483845ブラウズ

php がアップロード機能を実装するために使用する関数は、1. move_uploaded_file 関数、2. getimagesize 関数、3. extend 関数、4.explode 関数、5. count 関数などです。

アップロード機能を実装するためのphpの関数は何ですか?

#この記事の動作環境: Windows 7 システム、PHP バージョン 7.1、Dell G3 コンピューター。

アップロード機能を実装するためのphpの関数は何ですか?

ファイル アップロード関数を実装するための PHP の詳細なコード例

ファイルをアップロードせずにはいられないmove_uploaded_file関数 この関数は、次のことを確認します。ファイルによって指定されていること。 ファイルは合法的にアップロードされたファイルです (つまり、php チュートリアルの http ポスト アップロード メカニズムを通じてアップロードされます)。ファイルが正当な場合、そのファイルは newloc で指定されたファイルに移動されます。

ファイルが合法的にアップロードされたファイルではない場合、操作は行われず、move_uploaded_file() は false を返します。

ファイルが合法的にアップロードされたファイルであるにもかかわらず、何らかの理由で移動できない場合、アクションは実行されず、move_uploaded_file() は false を返し、警告が発行されます。

まずアップロード フォームの設定を見てみましょう

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

このように、設定する最大アップロード ファイルは 102400 バイトを超えることはできません

PHP でファイルのアップロードを実現するには、非常に困難ですシンプルです。次のコード

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

以上です。例を要約しましょう

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

ファイル アップロードのエラー コードを要約します

upload_err_ok エラーはありません。

upload_err_ini_size アップロードされたファイルは、指定されたファイルに存在する最大値を超えています。

upload_err_form_size アップロードされたファイルは、隠しコンポーネント max_file_size で指定された最大値を超えています。

upload_err_partial のファイルのアップロードがキャンセルされ、ファイルの一部のみがアップロードされました。

upload_err_nofile ファイルがアップロードされませんでした。

推奨学習: 「PHP ビデオ チュートリアル

以上がアップロード機能を実装するためのphpの関数は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。