ホームページ >バックエンド開発 >PHPチュートリアル >PHPファイルアップロード機能の実装を5ステップで詳しく解説_PHPチュートリアル

PHPファイルアップロード機能の実装を5ステップで詳しく解説_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:40:47823ブラウズ

1. フォーム パーツ
では、ユーザーが HTML フォームの宣言にアップロード属性を追加する必要があります:
enctype = multipart/form-data
フォームのメソッドは POST である必要があります
フォーム オプション MAX_FILE_SIZE隠しフィールドは制限のために使用されます。アップロード ファイル サイズ。ファイル フォーム要素の前に配置する必要があります。単位はバイトです。
例:






2. アップロードされたファイルの処理
アップロード時に、PHP はスーパーグローバル配列 $_FILES にあるファイルに関する情報の配列を受け取ります。
例: フォームのファイル入力ボックスの名前が Upload_file の場合、ファイルに関するすべての情報は配列 $_FILES[upload_file] に含まれます。
例: 顧客は次のように「aaa.jpg」画像配列値をアップロードしました:
name "p5pp.jpg" アップロード時のファイルの名前
type "image/jpeg" ファイルの種類
tmp_name "/tmp/phpjksdf " サーバー側の一時 ファイル名
error アップロード エラーの戻り値
size 2045 ファイルの実際のサイズ

上記の配列のエラーは、次のように異なる定数値を返します:
UPLOAD_ERR_OK エラーは発生しませんでした、ファイルはアップロードに成功しました
UPLOAD_ERR_INI_SIZE ファイル サイズが PHP.INI を超えています Upload_max_filesize オプションの制限値を超えています
UPLOAD_ERR_FORM_SIZE アップロードされたファイルのサイズが HTML フォームの MAX_FILE_SIZE オプションの値を超えています。処理するプログラムで $FILES [up_file][size] の形式を確認できます
UPLOAD_ERR_PARTIAL ファイルの一部のみがアップロードされました
UPLOAD_ERR_NO_FILE ユーザーはファイルのアップロードを提供しませんでした
アップロード後の処理の具体的な例:
if(! move_uploaded_file($_FILES[f] [tmp_name],"uploads/".$_FILES[f][name].".jpg")){
echo "error";
}

関数:
move_uploaded_file はアップロードされた一時ファイルを移動しますファイルを指定されたディレクトリにコピーします
例:
move_uploaded_file (一時ファイル名、指定されたファイルパス)
is_uploaded_file は、ファイルが http Post 経由でアップロードされるかどうかを決定します
例:
if(!is_uploaded_file($_FILES[f][tmp_name])){
echoillegal;
}

3. 関連パラメータ
PHP アップロード用に設計された php.ini のパラメータ:
file_uploads ファイルのアップロードを許可するかどうか、デフォルトは ON です
upload_tmp_dir 指定されていない場合、ファイルのアップロードを防止するための一時ディレクトリシステムのデフォルトの場所を使用します。
upload_max_filesize はアップロードを許可します。 ファイルの最大サイズ (デフォルトは 2M) です。
post_max_size は、PHP が POST メソッドを使用したフォーム送信で受け入れることができるデータの最大量を制御します。この値は、upload_max_filesize
max_input_time よりも大きくなるように変更する必要があります。秒単位は、POST/GET/PUT を通じてデータを受信する時間を制限します。
memory_limit スクリプトの実行によるシステム メモリの大量使用を避けるために、PHP ではメモリ使用量の制限を定義できます。このパラメータを設定して、単一のスクリプト プログラムが使用できる最大メモリ容量を指定します。この値は、post_max_size 値よりも適切に大きくする必要があります。
max_execution_time は、スクリプトを強制終了する前に PHP が実行されるまで待機する時間を設定するために使用されます。すぐに。この 2 番目のオプションでは無限ループ スクリプトを制限できますが、この機能により、正当なアクティビティ (大きなファイルのアップロードなど) が長期間続くと操作が失敗する可能性もあります。この場合、この変数を増やすことを検討する必要があります。

4. 複数のファイルのアップロードを検討してください
$_FILES 配列を使用すると、複数のファイルを簡単にアップロードできます。 $_FILES 配列はクライアント フォームのすべてのファイル フィールドの内容を取得できるため、同じフォームでアップロードされたすべてのファイルを取得できます。

5. アップロードメモリ制限を突破する
方法 1:
php.ini のmemory_limit 値を、64M などのより大きな値に変更します
方法 2:
Apache Rewrite メソッドを使用して、memory_limit の値を動的に変更します。まず .htaccess ファイルを作成し、ファイル アップロード プログラムの現在のディレクトリに保存します。コードは次のとおりです。
php_valuememory_limit 100M
php_valuepost_max_size 30M
php_valueupload_max_filesize 30M
php_valuemax_execution_time 300
php_valuemax_input_tim 300
php_valuedisplay_errorオン
——EOF— —
上記の記事を読んだ後、お役に立てれば幸いです。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/486176.html技術記事 1. フォーム パーツでは、ユーザーがファイルをアップロードできるように、HTML フォームの宣言にアップロード属性を追加する必要があります: enctype = multipart/form-data フォームのメソッドは POST フォーム オプション MAX_FI...
である必要があります。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。