ホームページ 毎日のプログラミング PHPの知識 PHP で複数の属性を使用して複数のファイルをアップロードし、情報を解析するにはどうすればよいですか? (写真 + ビデオ)

PHP で複数の属性を使用して複数のファイルをアップロードし、情報を解析するにはどうすればよいですか? (写真 + ビデオ)

Sep 17, 2018 pm 05:35 PM

この記事では、HTML5 で multiple 属性 を使用して、PHP の複数ファイルのアップロードと情報解析を実装する方法を引き続き紹介します。

それでは、PHP で複数のファイルをアップロードする簡単な方法は何でしょうか? ]では、PHPで複数のファイルをアップロードする簡単な方法を簡単に紹介しましたので、必要な方は参考にしてください。

以下では、特定のコード例を使用して、PHP の multiple 属性を使用して複数のファイルのアップロードと情報の解析を実装する完全な方法を詳しく紹介します。

まず、HTML フォーム コードは次のとおりです。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="getFile.php" method="post" enctype="multipart/form-data">
 选择文件进行上传: <input type="file" name="file[]" multiple=""><br>
    <input type="submit" value="上传">
</form>
</body>
</html>
ログイン後にコピー

複数の画像をアップロードし、ブラウザ経由でアクセスすることを選択します。結果は次のとおりです。

PHP で複数の属性を使用して複数のファイルをアップロードし、情報を解析するにはどうすればよいですか? (写真 + ビデオ)

PHP で複数の属性を使用して複数のファイルをアップロードし、情報を解析するにはどうすればよいですか? (写真 + ビデオ)

PHP で複数の属性を使用して複数のファイルをアップロードし、情報を解析するにはどうすればよいですか? (写真 + ビデオ)## 次に、ファイルを getFile.php ファイルにアップロードします。PHP コードの例は次のとおりです。 ##

var_dump($_FILES);
ログイン後にコピー

This ブラウザからアクセスした結果は以下の通りです。


現時点では、次の 3 つを取得していることがわかります。上の図の次元配列。 PHP で複数の属性を使用して複数のファイルをアップロードし、情報を解析するにはどうすればよいですか? (写真 + ビデオ)

したがって、アップロードされた複数のファイルの情報を分析したい場合は、最初にアップロードされた情報を組み立てる必要があります。

完全な getFile.php コードは次のとおりです:

<?php
/**
 * 组装多文件上传信息
 */
$files = [];
function getFile()
{
    $i = 0;
    foreach ($_FILES as $file) {
        if (is_string($file[&#39;name&#39;])) {
            $files[&#39;$i&#39;] = $file;
            $i++;
        } elseif (is_array($file[&#39;name&#39;])) {
            foreach ($file[&#39;name&#39;] as $k => $v) {
                $files[$i][&#39;name&#39;] = $file[&#39;name&#39;][$k];
                $files[$i][&#39;type&#39;] = $file[&#39;type&#39;][$k];
                $files[$i][&#39;tmp_name&#39;] = $file[&#39;tmp_name&#39;][$k];
                $files[$i][&#39;error&#39;] = $file[&#39;error&#39;][$k];
                $files[$i][&#39;size&#39;] = $file[&#39;size&#39;][$k];
                $i++;
            }
        }
    }
    return $files;
}

/**
 * 文件上传
 * @param $fileInfo
 * @param string $upload
 * @param array $imagesExt
 * @return string
 */
function upload_file($fileInfo, $upload = "./upload", $imagesExt = [&#39;gif&#39;, &#39;png&#39;, &#39;jpg&#39;])
{
    $res = [];
    if ($fileInfo[&#39;error&#39;] === 0) {
        $ext = strtolower(pathinfo($fileInfo[&#39;name&#39;], PATHINFO_EXTENSION));
        if (!in_array($ext, $imagesExt)) {
            $res[&#39;mes&#39;] = "文件非法类型";
        }
        if (!is_dir($upload)) {
            mkdir($upload, 0777, true);
        }
        if ($res) {
            return $res;
        }
        $fileName = md5(uniqid(microtime(true), true)) . "." . $ext;
        $destName = $upload . "/" . $fileName;
        if (!move_uploaded_file($fileInfo[&#39;tmp_name&#39;], $destName)) {
            $res[&#39;mes&#39;] = "文件上传失败!";
        }
        $res[&#39;mes&#39;] = $fileInfo[&#39;name&#39;] . "文件上传成功!";
        $res[&#39;dest&#39;] = $destName;
        return $res;
    } else {
        switch ($fileInfo[&#39;error&#39;]) {
            case 1:
                $res[&#39;mes&#39;] = &#39;上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值&#39;;
                break;
            case 2:
                $res[&#39;mes&#39;] = &#39;上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值&#39;;
                break;
            case 3:
                $res[&#39;mes&#39;] = &#39;文件只有部分被上传&#39;;
                break;
            case 4:
                $res[&#39;mes&#39;] = &#39;没有文件被上传&#39;;
                break;
            case 6:
                $res[&#39;mes&#39;] = &#39;找不到临时文件夹&#39;;
                break;
            case 7:
                $res[&#39;mes&#39;] = &#39;文件写入失败&#39;;
                break;
        }
        return $res;
    }
}

$files = getFile();

foreach ($files as $fileInfo) {
    $res = upload_file($fileInfo);
    echo $res[&#39;mes&#39;];
    var_dump($res[&#39;dest&#39;]);
}
ログイン後にコピー
上記のコードでは、最初に foreach ループの判定ステートメント

を次のように渡します。アップロードされた多次元配列情報を確認します

Reorganizeを確認し、複数のファイルのアップロード情報を解析するためのupload_fileメソッドを作成します。 ここでのupload_fileメソッドについては、こちらの記事[PHPファイルのアップロード方法とその情報分析の詳細説明

]で詳しく紹介されているので、参考にしてみてください。以上がPHPで複数ファイルのアップロードと情報解析を実現する具体的な方法です。

PHP についてさらに詳しく知りたい場合は、PHP 中国語 Web サイトの PHP ビデオ チュートリアル

をご覧ください。

以上がPHP で複数の属性を使用して複数のファイルをアップロードし、情報を解析するにはどうすればよいですか? (写真 + ビデオ)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)