ホームページ >バックエンド開発 >PHPチュートリアル >PHP 複数ファイルのアップロード操作_PHP チュートリアル

PHP 複数ファイルのアップロード操作_PHP チュートリアル

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-07-13 10:21:33852ブラウズ

PHP 複数ファイルのアップロード操作

実際、複数ファイルのアップロードと単一ファイルのアップロードは原理は同じですが、コードにはいくつかのトリックがあります。
最初は、index.html アップロード フォームです。前のファイル アップロード フォームのファイルを file[] に変更するだけです
コードをコピー
ファイルをアップロード
ファイルをアップロードします:
ファイルをアップロードします:
ファイルをアップロードする:
コードをコピー
$_FILESを使用してupload.phpで印刷します
print_r($_FILES);
?>
次の多次元配列を取得します
コードをコピー
配列
(
[ファイル] => 配列
(
[名前] = & gt;
(
& [0] = & gt; 写真 1.jpg
& [1] = & gt; 写真 2.jpg
& [2] = & gt; 写真 3.jpg
)
[タイプ] => 配列
(
)
[tmp_name] => 配列
(
[0] =>
[1] =>
[2] =>
)
[エラー] => 配列
(
)
[サイズ] = & gt;
(
)
)
)
コードをコピー
単一ファイルのアップロードの原則に従って、まず何を取得する必要があるかを考えますか?
明らかに、ファイル情報の配列を取得する必要があります。配列には、対応するキー値が存在しますが、この時点で取得されるのは多次元配列です。 -次元
分割する必要があるのは、上記の 3 つのファイルのように、対応する 3 つのファイル情報配列に分割するだけです。
分割配列の構造
コードをコピー
配列
(
[0] => 配列
(
[名前] = & gt; 写真 1.jpg
[種類] = & gt; 画像/jpeg
=>
[エラー] => 0
[サイズ] = >385150
)
[1] => 配列
(
[名前] = & gt;写真2.jpg
[種類] = & gt; 画像/jpeg
名前] => [エラー] = & gt; [サイズ] = >242043
)
[2] => 配列
(
[名前] = & gt;写真3.jpg
[種類] = & gt; 画像/jpeg
[tmp_name] => [エラー] = & gt; [サイズ] = >488293
)
)
コードをコピー
以下は配列の分割と再編成のためのコードです
コードをコピー
//print_r($_FILES['file']);
$arr=$_FILES['ファイル'];
$files=array();
for($i=0;$i
$files[$i]['name']=$arr['name'][$i];
$files[$i]['type']=$arr['type'][$i];
$files[$i]['tmp_name']=$arr['tmp_name'][$i];
$files[$i]['error']=$arr['error'][$i];
$files[$i]['size']=$arr['size'][$i];
}
print_r($files);
?>
コードをコピー
残りは簡単です。単一のファイルをアップロードする手順を繰り返し、配列を反復処理するだけです。
コードは次のとおりです:
コードをコピー
//print_r($_FILES['file']);
$arr=$_FILES['ファイル'];
$files=array();
for($i=0;$i
$files[$i]['name']=$arr['name'][$i];
$files[$i]['type']=$arr['type'][$i];
$files[$i]['tmp_name']=$arr['tmp_name'][$i];
$files[$i]['error']=$arr['error'][$i];
$files[$i]['size']=$arr['size'][$i];
}
for($i=0;$i
//アップロードされたファイル情報を取得します
$fileName=$files[$i]['name'];
$fileType=$files[$i]['type'];
$fileError=$files[$i]['type'];
$fileSize=$files[$i]['サイズ'];
$tempName=$files[$i]['tmp_name'];//一時ファイル名
//アップロードファイルの種類を定義します
$typeList = array("image/jpeg","image/jpg","image/png","image/gif") //許可されるタイプを定義します
if($fileError>0){
错 // アップロードファイルエラー番号判定
switch ($fileError) {
ケース 1:
A $ message = "アップロードされたファイルは、php.ini の Upload_max_filesize オプションで制限されている値を超えています。";
休憩;
ケース 2:
$message="アップロードされたファイルのサイズが、HTML フォームの MAX_FILE_SIZE オプションで指定された値を超えています。";
休憩;
ケース 3:
$message="ファイルの一部のみがアップロードされました。";
休憩;
ケース 4:
$message="ファイルはアップロードされていません。";
休憩;
ケース 6:
$message="一時フォルダーが見つかりません。";
休憩;
ケース 7:
$message="ファイルの書き込みに失敗しました";
休憩;
ケース 8:
$message="PHP 拡張機能によりファイルのアップロードが中断されました";
休憩;
}
exit("ファイルのアップロードに失敗しました: ".$message);
}
if(!is_uploaded_file($tempName)){
//POSTでアップロードされたファイルかどうかを判定します
exit("HTTP POST 経由でアップロードされませんでした");
}その他{
if(!in_array($fileType, $typeList)){
exit("アップロードされたファイルは指定された種類ではありません");
}その他{
if(!getimagesize($tempName)){
//ウイルスファイルの拡張子を画像形式に変更するなど、ユーザーによる悪意のあるファイルのアップロードを防止します
exit("アップロードされたファイルは写真ではありません");
}
}
if($fileSize>1000000){
’to’ sol- ‐-- -
(「アップロードされたファイルはサイズ制限を超えています」);
}その他{
//アップロードされたファイルの中国語名の文字化けを避ける
$fileName=iconv("UTF-8", "GBK", $fileName);//iconv によってキャプチャされた文字エンコーディングを utf-8 から gbk に変換して出力します
A $ FILENAME = Str_replace (".", Time (). ".", $ FILENAME) // 名前 name の後にタイムスタンプを追加します。
_ move_uploaded_file($tempName, "uploads/".$fileName)){
传 エコー「ファイルのアップロードは成功しました!」
}その他{
「ファイルのアップロードに失敗しました」 echo 「ファイルのアップロードに失敗しました」;
}
}
}
}
?>

http://www.bkjia.com/PHPjc/855346.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/855346.html技術記事 PHP の複数ファイルのアップロード操作は、実際には複数ファイルのアップロードと単一ファイルのアップロードに似ていますが、コードにはいくつかの小さなトリックがあります。 1 つ目は、index.html アップロード フォームです。ただ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。