phpファイルをアップロードす...LOGIN

phpファイルをアップロードする手順

ファイルアップロードの手順

PHPをより良く学ぶために、非常に複雑なPHPファイルのアップロードを6つのステップにまとめました。

実際の使用では、次の 6 つの手順に従って PHP ファイルのアップロードを正常に完了できます:

1. エラー コード


があるかどうかを確認します。システムから返されるエラー コードの詳細な説明:

エラーコード説明
0は正しいので、後続のファイルアップロード操作を続行できます。
1アップロードされるファイルの上限を超えています。php.iniでupload_max_filesize = 2Mが設定されており、デフォルトは2Mです。プロジェクトの実際のニーズに応じて変更できます
2指定されたファイルサイズを超えており、アップロードされるファイルのサイズ制限はプロジェクトのビジネスニーズに従って指定されています
3 一部のファイルのみがアップロードされています
4ファイルはアップロードされませんでした
6一時フォルダーが見つかりません。ディレクトリが存在しないか、権限がない可能性があります
7ファイルの書き込みに失敗しました。おそらくディスクがいっぱいか、権限がありません


注: エラー コードに 5 はありません。

2.アップロード機能を開発する際に、ファイルサイズが範囲を超えているかどうかを判断するためのカスタマイズされた判定。開発者として、php.ini で指定された最大アップロード値に加えて、

通常、企業が指定したアップロード サイズ制限である値も設定します。

例:

Sina Weibo または QQ Zone では、2M の単一のアバター写真のみが許可されます。アルバムをアップロードする場合は、2M を超えてアップロードできます。


そのため、そのシステムはより大きなファイルのアップロードをサポートしています。

ここでの判定ファイルサイズは、実際の業務で指定したいアップロードファイルサイズを制限するために使用されます。

3. サフィックス名と MIME タイプが一致するかどうかを確認します

オンラインの世界にも悪い人がいます。画像にウイルスを挿入したり、添付ファイルにウイルスをアップロードしたり、Web ページにウイルスやポルノ画像を挿入したりします。

アップロードされたファイルのサフィックスと MIME タイプを判断する必要があります。

MIME (MultiPurpose Internet Mail Extensions) は、多目的インターネット メール拡張機能のタイプです。特定の拡張子を持つファイルをアプリケーションで開くように設定し、その拡張子を持つファイルにアクセスすると、ブラウザは自動的に指定されたアプリケーションを使用してそのファイルを開きます。これは主に、クライアント定義のファイル名とメディア ファイルを開く方法を指定するために使用されます。

サフィックスと MIME タイプを決定するときは、2 つのパラメーターを渡す PHP 関数 in_array() を使用します。

最初のパラメータは判定する値です。

2 番目のパラメータは範囲配列です。

この関数を使用して、ファイル拡張子と MIME タイプが許可された範囲内であるかどうかを判断します。

4. ファイル名を生成します

ファイルは正常にアップロードされましたが、元の名前は保存されません。

元の名前にデリケートなキーワードが含まれている一部の人々は、我が国の関連法規制に違反する可能性があるためです。


date()、mt_rand()、または unique() を使用して、ランダムなファイル名を生成できます。

5. ファイルがアップロードされたかどうかを確認します

ファイルが正常にアップロードされると、システムはアップロードされた一時ファイルをシステムの一時ディレクトリにアップロードします。一時ファイルを作成します。

同時に一時ファイル名も生成されます。必要なのは、一時ファイルをシステム上の指定されたディレクトリに移動することです。

動く前にやみくもに動かない、あるいは間違った動きをするのは非科学的です。移動する前に、関連する関数を使用して、アップロードされたファイルが一時ファイルであるかどうかを判断する必要があります。

is_uploaded_file() はパラメータ ($_FILES にキャッシュされたファイル名) を渡して、渡された名前がアップロードされたファイルかどうかを判断します。

6. 一時ファイルを指定された場所に移動します

一時ファイルは実際の一時ファイルです。Web サイトのディレクトリに移動する必要があります。

当社のウェブサイトディレクトリ内のデータに他の人がアクセスできるようにします。

move_uploaded_file() を使用します。
この関数は、アップロードされたファイルを指定された場所に移動し、名前を付けます。
2 つのパラメータを渡します:
最初のパラメータは、移動を指定するアップロードされたファイルです。
2 番目のパラメータは、指定されたフォルダと名前を連結した文字列です。


次のセクション
<form action="" enctype="multipart/form-data" method="post" name="uploadfile">上传文件:<input type="file" name="upfile" /><br> <input type="submit" value="上传" /></form> <?php //print_r($_FILES["upfile"]); if(is_uploaded_file($_FILES['upfile']['tmp_name'])){ $upfile=$_FILES["upfile"]; //获取数组里面的值 $name=$upfile["name"];//上传文件的文件名 $type=$upfile["type"];//上传文件的类型 $size=$upfile["size"];//上传文件的大小 $tmp_name=$upfile["tmp_name"];//上传文件的临时存放路径 //判断是否为图片 switch ($type){ case 'image/pjpeg':$okType=true; break; case 'image/jpeg':$okType=true; break; case 'image/gif':$okType=true; break; case 'image/png':$okType=true; break; } if($okType){ /** * 0:文件上传成功<br/> * 1:超过了文件大小,在php.ini文件中设置<br/> * 2:超过了文件的大小MAX_FILE_SIZE选项指定的值<br/> * 3:文件只有部分被上传<br/> * 4:没有文件被上传<br/> * 5:上传文件大小为0 */ $error=$upfile["error"];//上传后系统返回的值 echo "================<br/>"; echo "上传文件名称是:".$name."<br/>"; echo "上传文件类型是:".$type."<br/>"; echo "上传文件大小是:".$size."<br/>"; echo "上传后系统返回的值是:".$error."<br/>"; echo "上传文件的临时存放路径是:".$tmp_name."<br/>"; echo "开始移动上传文件<br/>"; //把上传的临时文件移动到up目录下面 move_uploaded_file($tmp_name,'up/'.$name); $destination="up/".$name; echo "================<br/>"; echo "上传信息:<br/>"; if($error==0){ echo "文件上传成功啦!"; echo "<br>图片预览:<br>"; echo "<img src=".$destination.">"; //echo " alt=\"图片预览:\r文件名:".$destination."\r上传时间:\">"; }elseif ($error==1){ echo "超过了文件大小,在php.ini文件中设置"; }elseif ($error==2){ echo "超过了文件的大小MAX_FILE_SIZE选项指定的值"; }elseif ($error==3){ echo "文件只有部分被上传"; }elseif ($error==4){ echo "没有文件被上传"; }else{ echo "上传文件大小为0"; } }else{ echo "请上传jpg,gif,png等格式的图片!"; } } ?>
コースウェア