PHPファイルアップロードの応用と原理を詳しく解説_PHPチュートリアル

WBOY
リリース: 2016-07-13 10:50:22
オリジナル
800 人が閲覧しました

php でファイルをアップロードするには、いくつかのコツを知っておく必要があります。その 1 つは、フォームによって投稿されたデータが php move_uploaded_file によって受け入れられ、サーバー上の指定されたパスに保存されることです。

1.formタグのenctype属性。

2.$_FILES システム関数。 //アップロードされたコンテンツを配列に変換します。

3.move_uploaded_file関数。 //キャッシュフォルダーに保存されているアップロードファイルを指定フォルダーに移動します。

4.is_uploaded_file関数。 // 存在するかどうかを判断します。

------------------------------------------------------------

1.フォームタグ

形式:


2.$_FILES システム関数
$_FILES['name'] //クライアントによってアップロードされたファイルの元のファイル名。
$_FILES['type'] //ファイルの MIME タイプ、例: "image/gif"
$_FILES['size'] //アップロードファイルのサイズをバイト単位で指定します。
$_FILES['tmp_name'] //一時ファイル名、通常はデフォルト。
$_FILES['error'] //アップロード関連のシチュエーションコード (0: 成功、1: php.ini で設定されたサイズを超えています。2: PHP ファイルコードで指定されているサイズを超えています。3: ファイルの一部のみがアップロードされています) 4: ファイルがアップロードされていません。5: アップロードされたファイルのサイズは 0)

3.move_uploaded_file関数
アップロード後にファイルを目的の場所に移動する機能
move_uploaded_file (一時ファイル、ターゲットの場所、ファイル名;)

4.is_uploaded_file関数
MIMEタイプをアップロードするファイル関数を決定します
is_uploaded_file(MIME);

------------------------------------------------------------

例:

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




注意

1. ファイルに通常のフォーム情報が含まれていることをサーバーに知らせるために、フォームに enctype="multipart/form-data" を指定する必要があります。
2. アップロードされるファイルの最大長、つまりアップロードされるファイルの最大値(バイト単位で計算)を設定できるフォーム領域が必要です。これは隠し値フィールド、つまり max_file_size を設定します。その値 (値) では、アップロードされるファイルのサイズを制限することができます。これにより、ユーザーが大きなファイルがアップロードされるのを待ってから、そのファイルが大きすぎることが判明するという煩わしさを避けることができます。ただし、一般に他のユーザーはこの値をバイパスできるため、安全上の理由から、php.ini ファイルの Upload_max_filesize オプションを設定してファイルのアップロード サイズを設定することが最善です。デフォルトは 2M

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

関数アップロードファイル($type,$name,$ext,$size,$error,$tmp_name,$targetname,$upload_dir)
{
$MAX_SIZE = 2000000;
$FILE_MIMES = array('image/pjpeg','image/jpeg','image/jpg','image/gif','image/png');
$FILE_EXTS = array('.jpg','.gif','.png','.JPG','.GIF','.PNG');

$file_path = $upload_dir.$targetname;

If(!is_dir($upload_dir))
{
if(!mkdir($upload_dir))
die("ファイル アップロード ディレクトリが存在しないため、ファイル アップロード ディレクトリを作成できません");
If(!chmod($upload_dir,0755))
die("ファイルアップロードディレクトリのアクセス許可を読み取りと書き込みに設定できません");
}

If($size>$MAX_SIZE)
die("アップロードされたファイルのサイズが指定されたサイズを超えています");

if($size == 0)
die("アップロードするファイルを選択してください");

if(!in_array($type,$FILE_MIMES) || !in_array($ext,$FILE_EXTS))
die("要件を満たすファイルタイプをアップロードしてください");

if(!move_uploaded_file($tmp_name, $file_path))
die("ファイルのコピーに失敗しました。もう一度アップロードしてください");

スイッチ($error)
{
ケース0:
戻ります;
ケース1:
die("アップロードされたファイルは、php.ini の Upload_max_filesize オプションで制限された値を超えています");
ケース 2:
die("アップロードされたファイルのサイズが、HTML フォームの MAX_FILE_SIZE オプションで指定された値を超えています");
ケース 3:
die("ファイルの一部のみがアップロードされました");
ケース4:
die("ファイルはアップロードされませんでした");
}
}

複数のファイルをアップロードするには?たとえば、同時に 3 つのファイルをアップロードします

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

追加するだけ


<入力名="ユーザーファイル" タイプ="ファイル">

に変更されました

<入力名="ユーザーファイル[]" タイプ="ファイル">
<入力名="ユーザーファイル[]" タイプ="ファイル">
<入力名="ユーザーファイル[]" タイプ="ファイル">

同様に、この関数を呼び出すと、$_FILES['userfile']['name'][0] は最初のファイルの関連ファイル情報を表し、以下同様になります。他のファイルについても同様です。

一部の php パフォーマンス構成。必要に応じて変更できます

max_execution_time = 30; 各 PHP ページの実行時間の最大値 (秒)、デフォルトは 30 秒です
max_input_time = 60; 各 PHP ページがデータを受信するのに必要な最大時間、デフォルトは 60 秒です
Memory_limit = 128m; 各 PHP ページによって消費される最大メモリ、デフォルトは 128M です。小さすぎると感じる場合は、大きく設定できます。 128あれば十分です。
最大実行時間 = 600
max_input_time = 600
アップロード_最大ファイルサイズ = 32m
post_max_size = 32m

ファイルサイズが制限されている場合は、次のように解決できます

php.iniを開いて、まず見つけます

file_uploads = on ; HTTP 経由でのファイルのアップロードを許可するかどうかを切り替えます。デフォルトはON、つまりオープンです

upload_tmp_dir; ファイルは、一時ファイルが保存されるサーバーにアップロードされます。

upload_max_filesize = 8m; Wangwen ビジネス、つまり、許可される最大アップロード ファイル サイズ。デフォルトは 2M です

post_max_size = 8m; は、フォーム内のすべての値を含む、PHP へのフォーム POST を通じて受信できる最大値を指します。デフォルトは8Mです

通常、上記の 4 つのパラメータを設定した後、ネットワークが正常である限り、8M 以下のファイルをアップロードしても問題ありません。

ただし、8Mを超える大きなファイルをアップロードしたい場合は、上記の4つの項目を設定するだけで確実に機能します。


さらに次のパラメータを設定します

max_execution_time = 600; 各 PHP ページの実行時間の最大値 (秒)、デフォルトは 30 秒です

max_input_time = 600; 各 PHP ページがデータを受信するのに必要な最大時間、デフォルトは 60 秒です

memory_limit = 8m; 各 PHP ページが消費する最大メモリ、デフォルトは 8M です

上記のパラメータを変更すると、ネットワークで許可されている通常の状況で大きなファイルをアップロードできます

最大実行時間 = 600
max_input_time = 600
メモリ制限 = 32m
file_uploads = オン
アップロード_tmp_dir = /tmp
アップロード_最大ファイルサイズ = 32m
post_max_size = 32m

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632639.html技術記事 PHP でファイルをアップロードするには、いくつかのコツを知っておく必要があります。その 1 つは、フォームによって投稿されたデータが PHP move_uploaded_file によって受け入れられ、サーバー上の指定されたパスに保存されることです。 ...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!