>  기사  >  일일 프로그램  >  PHP에서 다중 속성을 사용하여 여러 파일을 업로드하고 정보를 구문 분석하는 방법은 무엇입니까? (사진 + 동영상)

PHP에서 다중 속성을 사용하여 여러 파일을 업로드하고 정보를 구문 분석하는 방법은 무엇입니까? (사진 + 동영상)

藏色散人
藏色散人원래의
2018-09-17 17:35:086474검색

이 문서에서는 HTML5의 다중 속성을 사용하여 PHP에서 다중 파일 업로드 및 정보 구문 분석을 구현하는 방법을 계속 소개합니다.

그렇다면 PHP에서 여러 파일을 업로드하는 간단한 방법은 무엇입니까? ], PHP에서 여러 파일을 업로드하는 간단한 방법을 간략하게 소개했습니다. 필요한 친구들이 참고할 수 있습니다.

아래에서는 특정 코드 예제를 사용하여 PHP가 다중 속성을 사용하여 다중 파일 업로드 및 정보 구문 분석을 구현하는 방법을 자세히 소개합니다.

먼저 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에서 다중 속성을 사용하여 여러 파일을 업로드하고 정보를 구문 분석하는 방법은 무엇입니까? (사진 + 동영상)

file to getFile.php 파일 중 PHP 코드 예시는 다음과 같습니다.

var_dump($_FILES);
PHP에서 다중 속성을 사용하여 여러 파일을 업로드하고 정보를 구문 분석하는 방법은 무엇입니까? (사진 + 동영상)이때, 브라우저를 통해 접속한 결과는 다음과 같습니다.


이때, 우리가 위 그림의 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 메소드를 multiple로 각 파일의 업로드 정보를 파싱합니다. 여기서 upload_file 방식은 본 글 [PHP 파일 업로드 방식 및 정보 분석에 대한 자세한 설명]에 자세히 소개되어 있으니 참고하시면 됩니다. 위는 PHP가 다중 파일 업로드 및 정보 분석을 구현하는 구체적인 방법입니다.

PHP에 대해 더 자세히 알고 싶다면 PHP 중국어 웹사이트의 PHP 비디오 튜토리얼을 따라가세요!

위 내용은 PHP에서 다중 속성을 사용하여 여러 파일을 업로드하고 정보를 구문 분석하는 방법은 무엇입니까? (사진 + 동영상)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.