ファイルアップロードの手順
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 番目のパラメータは、指定されたフォルダと名前を連結した文字列です。