>일일 프로그램 >PHP 지식 >PHP로 여러 파일을 업로드하는 간단한 방법은 무엇입니까? (사진 + 동영상)

PHP로 여러 파일을 업로드하는 간단한 방법은 무엇입니까? (사진 + 동영상)

藏色散人
藏色散人원래의
2018-09-17 17:32:2411046검색

이 글에서는 PHP에서 여러 파일을 업로드하는 몇 가지 간단한 방법을 소개합니다.

본 지식 콘텐츠를 소개하기에 앞서, 이전 글에서 PHP에서 단일 파일 구현에 대해 자세히 소개한 바 있습니다. [PHP 파일 업로드 방법 및 정보 분석에 대한 자세한 설명#🎜🎜 #] 구체적인 업로드 방법은 오늘 소개할 지식포인트와 관련된 글이니 필요하신 분들은 먼저 참고하시면 될 것 같습니다.

아래에서는 특정 코드 예제를 통해 PHP에서 여러 파일을 업로드하는 몇 가지 간단한 방법을 소개합니다.

첫 번째 방법: 단일 파일 업로드 방법 사용

간단한 양식 코드는 다음과 같습니다.

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
 选择文件进行上传: <input type="file" name="file1">
 选择文件进行上传: <input type="file" name="file2">
 选择文件进行上传: <input type="file" name="file3">
    <input type="submit" value="上传">
</form>
</body>
</html>

코드 효과는 아래와 같습니다.

PHP로 여러 파일을 업로드하는 간단한 방법은 무엇입니까? (사진 + 동영상)

그림과 같이 우리는 다음을 선택했습니다. 세 개의 파일을 업로드한 다음 해당 파일을 upload.php 파일에 업로드합니다. PHP 코드는 다음과 같습니다.

<?php
echo "<pre class="brush:php;toolbar:false">";
var_dump($_FILES);

그런 다음 다음과 같이 브라우저를 통해 계속 결과에 액세스합니다. #🎜🎜 #

PHP로 여러 파일을 업로드하는 간단한 방법은 무엇입니까? (사진 + 동영상)여기서는 그림의 2차원 배열을 얻습니다. 여러 파일을 업로드하려면 foreach 루프를 통해 구현해야 합니다.

그러면 upload.php의 전체 코드는 다음과 같습니다.

<?php
echo "<pre class="brush:php;toolbar:false">";
var_dump($_FILES);
$files = [];
foreach ($_FILES as $fileInfo) {
    $files[] = upload_file($fileInfo);
}
var_dump($files);
function upload_file($fileInfo, $upload = "./upload", $imagesExt = ['gif', 'png', 'jpg'])
{
    if ($fileInfo['error'] === 0) {
        $ext = strtolower(pathinfo($fileInfo['name'], PATHINFO_EXTENSION));
        if (!in_array($ext, $imagesExt)) {
            return "文件非法类型";
        }
        if (!is_dir($upload)) {
            mkdir($upload, 0777, true);
        }
        $fileName = md5(uniqid(microtime(true), true)) . "." . $ext;
        $destName = $upload . "/" . $fileName;
        if (!move_uploaded_file($fileInfo['tmp_name'], $destName)) {
            return "文件上传失败!";
        }
        return "文件上传成功!";
    } else {
        switch ($fileInfo['error']) {
            case 1:
                echo '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值';
                break;
            case 2:
                echo '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值';
                break;
            case 3:
                echo '文件只有部分被上传';
                break;
            case 4:
                echo '没有文件被上传';
                break;
            case 6:
                echo '找不到临时文件夹';
                break;
            case 7:
                echo '文件写入失败';
                break;
        }
    }
}

마지막으로 업로드할 여러 파일을 선택하면 결과는 아래와 같습니다.

# ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 이번에는 , 여러 파일이 성공적으로 구현되었습니다. 업로드 작업이 끝났습니다.

PHP로 여러 파일을 업로드하는 간단한 방법은 무엇입니까? (사진 + 동영상)
두 번째 방법: HTML5에서 다중 방법 사용

#🎜🎜 #The 여러 파일을 업로드하기 위한 HTML 인터페이스의 코드 예는 다음과 같습니다. PHP로 여러 파일을 업로드하는 간단한 방법은 무엇입니까? (사진 + 동영상)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
 选择文件进行上传: <input type="file" name="file[]" multiple=""><br>
    <input type="submit" value="上传">
</form>
</body>
</html>
이 코드의 효과는 다음과 같습니다.

#🎜 🎜##🎜 🎜#여기 양식에서는
HTML 5
의 multiple 속성을 사용합니다. 즉, 이 속성을 선택하면 입력 필드가 여러 값을 선택할 수 있음을 나타냅니다. 필드는 여러 값을 허용할 수 있습니다. 다중은 다중 파일 업로드를 구현하는 데 중요한 속성입니다. 동시에 입력의 이름을 file[] 배열로 설정합니다.

그런 다음 아래와 같이 업로드할 여러 파일을 선택합니다.

#🎜 🎜#

사진과 같이 3장의 사진을 선택한 후, 다음의 upload.php 파일을 이용하여 3장의 데이터를 받아왔습니다.

PHP로 여러 파일을 업로드하는 간단한 방법은 무엇입니까? (사진 + 동영상)upload.php 코드 예시는 다음과 같습니다.

<?php
echo "<pre class="brush:php;toolbar:false">";
var_dump($_FILES);
$files = [];
foreach ($_FILES as $fileInfo) {
    $files[] = upload_file($fileInfo);
}
var_dump($files);
function upload_file($fileInfo, $upload = "./upload", $imagesExt = ['gif', 'png', 'jpg'])
{
    if ($fileInfo['error'] === 0) {
        $ext = strtolower(pathinfo($fileInfo['name'], PATHINFO_EXTENSION));
        if (!in_array($ext, $imagesExt)) {
            return "文件非法类型";
        }
        if (!is_dir($upload)) {
            mkdir($upload, 0777, true);
        }
        $fileName = md5(uniqid(microtime(true), true)) . "." . $ext;
        $destName = $upload . "/" . $fileName;
        if (!move_uploaded_file($fileInfo['tmp_name'], $destName)) {
            return "文件上传失败!";
        }
        return "文件上传成功!";
    } else {
        switch ($fileInfo['error']) {
            case 1:
                echo '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值';
                break;
            case 2:
                echo '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值';
                break;
            case 3:
                echo '文件只有部分被上传';
                break;
            case 4:
                echo '没有文件被上传';
                break;
            case 6:
                echo '找不到临时文件夹';
                break;
            case 7:
                echo '文件写入失败';
                break;
        }
    }
}
이때 파일 3개를 업로드한 후 브라우저를 통해 접속하면 결과는 다음과 같습니다. # 🎜🎜#

사진을 보면 업로드된 파일 정보가 이름, 이름, 3개 이미지의 종류, 임시 저장 위치 경로, 크기, 기타 정보가 각각 배열에 배치됩니다.

PHP로 여러 파일을 업로드하는 간단한 방법은 무엇입니까? (사진 + 동영상)그러나 upload.php 파일의 정보 파싱 방식은 multiple 속성으로 업로드된 파일에는 아무런 영향을 미치지 않는 것을 확인할 수 있습니다.

따라서 이 기사에서는 먼저 PHP를 사용하여 다중 속성을 사용하여 다중 파일 업로드를 구현하는 두 가지 간단한 방법을 소개합니다. 후속 기사에서는 PHP가 다중 파일 업로드를 구현하는 방법을 계속해서 자세히 소개할 것입니다. . 그리고 정보분석은 두 번째 방법에 대한 자세한 설명입니다! PHP로 여러 파일을 업로드하는 간단한 방법은 무엇입니까? (사진 + 동영상)

PHP에 대해 더 알고 싶다면 PHP 중국어 웹사이트

PHP 비디오 튜토리얼

을 따라가세요. 참고하시고 공부하실 분들 모두 환영합니다!

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

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