ホームページ > php教程 > php手册 > PHP ファイルをアップロードするための完全なガイド

PHP ファイルをアップロードするための完全なガイド

WBOY
リリース: 2016-06-13 12:16:59
オリジナル
938 人が閲覧しました

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

コードをコピー コードは次のとおりです:



;



2. アップロードされたファイルの処理>アップロード時に、PHP はファイルに関する情報の配列を受け取ります。これらの情報は、スーパー グローバル配列 $_FILES にあります。 例: フォームのファイル入力ボックスの名前が Upload_file の場合、ファイルに関するすべての情報は配列 $_FILES['upload_file'] に含まれます。 " /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 "エラー"; 関数:

move_uploaded_file はアップロードされた一時ファイルを指定されたディレクトリに移動します

例:
move_uploaded_file('一時ファイル名', '指定されたファイルパス')

is_uploaded_file は決定しますhttp Post 経由でアップロードされたファイルかどうか
例:




コードをコピー

コードは次のとおりです:


if (!is_uploaded_file($_FILES['f'][' tmp_name'])){

echo 'illegal' >}

3.



PHP のデザインを php.ini のパラメーターにアップロードします。
file_uploads ファイルのアップロードを許可するかどうか、デフォルトは ON

upload_tmp_dir ファイルのアップロードを防止するための一時ディレクトリ (指定されていない場合は、使用します)システムのデフォルトの場所

upload_max_filesize はファイルのアップロードを許可します サイズの最大値、デフォルトは 2M です post_max_size は、PHP が POST メソッドを使用したフォーム送信で受け入れることができるデータの最大量を制御しますPHP ファイルのアップロードを使用する場合は、この値を Upload_max_filesize よりも大きくする必要があります。大きい

max_input_time は、POST/GET/PUT メソッドを介してデータを受信する時間を秒単位で制限します。

memory_limit スクリプトの実行による大量のシステム メモリの使用を避けるために、PHP ではメモリ使用量の制限を定義できます。このパラメータを設定して、単一のスクリプト プログラムが使用できる最大メモリ容量を指定します。この値は、

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_value post_max_size 30M php_value Upload_max_filesize 30M php_value max_execution_time 300
php_value max_input_tim 300
php_value display_errors オン
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート