How to upload multiple files in PHP

墨辰丷
Release: 2023-03-27 21:30:01
Original
1965 people have browsed it

This article mainly introduces the relevant information on the PHP implementation of uploading multiple file sample codes. It has certain reference value. Interested friends can refer to it.

Upload multiple files

1. Before operating multi-file information, you need to build the file information, and use the buildInfo function to convert the three-dimensional array into a two-dimensional array that is convenient for file operations.

function buildInfo(){
  $i = 0;
  foreach ($_FILES as $v){
    //判断是否是单文件
    if(is_string($v['name'])){
      $files[$i] = $v;
      $i++;
    }else{
      //多文件
      foreach ($v['name'] as $key => $value){
        $files[$i]['name'] = $value;
        $files[$i]['size'] = $v['size'][$key];
        $files[$i]['tmp_name'] = $v['tmp_name'][$key];
        $files[$i]['type'] = $v['type'][$key];
        $files[$i]['error'] = $v['error'][$key];
        $i++;
      }
    }
  }
  return $files;
}
Copy after login

The judgment between single file and multiple files lies in the type of file array, single file (two-dimensional array), multiple files (three-dimensional array).

2. File upload function and parameters


Copy code The code is as follows:


function uploadFiles ($path = "uploads", $allowExt = array("jpg", "gif", "png", "wbmp"), $maxSize = 1048576, $imgFlag = true)

path , save the directory. allowExt, array of allowed extensions. maxSizeThe maximum upload file size. imgFlag, image file identifier.

3. Determine whether the directory where the file is saved exists

if(!file_exists($path)){
    mkdir($path, 0777, true);
  }
Copy after login

4. Pass in the constructed file information and save it to files

$i = 0;
$files = buildInfo();
Copy after login

5. Determine the error type of the file

foreach ($files as $file){
    if($file['error'] == UPLOAD_ERR_OK){
}else{
    switch ($file['error']){
      case 1:
        $mes = "超过配置文件上传文件大小";
        break;
      case 2:
        $mes = "超过了表单设置";
        break;
      case 3:
        $mes = "文件部分被上传";
        break;
      case 4:
        $mes = "没有文件上传";
        break;
      case 6:
        $mes = "没找到临时目录";
        break;
      case 7:
        $mes = "文件不可写";
        break;
      case 8:
        $mes = "由于PHP的扩展程序中断了文件上传";
        break;
    }
Copy after login

6.Restrict the file type

if($file['error'] == UPLOAD_ERR_OK){
      $ext = getExt($file['name']);
      if(!in_array($ext, $allowExt)){
        exit("非法文件类型");
      }
Copy after login

7. Restrict whether the picture type is true

if($imgFlag){
        if(!getimagesize($file['tmp_name'])){
          exit("不是真的图片类型");
        }
      }
Copy after login

8. Determine the file size

if($file['size'] > $maxSize){
        exit("文件过大");
      }
Copy after login

9. Determine whether the file is uploaded through post

if(!is_uploaded_file($file[‘tmp_name'])){ 
exit(“文件不是通过HTTP POST上传”); 
}
Copy after login

10. Rename the file (Unique and non-duplicate) and save to the target directory

$filename = getUniName().".".$ext;
$destination = $path."/".$filename;
if(move_uploaded_file($file['tmp_name'], $destination)){
        $mes = "文件上传成功";
        $file['name'] = $filename;
        unset($file['error'], $file['tmp_name']);
        $uploadedFiles[$i] = $file;
        $i++;
      }
Copy after login

Rewrite the name in the file information array, delete the variables file['error'] and file[ 'tmp_name']. Finally, save the successfully uploaded files to the uploadedFiles array.

The above is the entire content of this article, I hope it will be helpful to everyone's study.


Related recommendations:

In phpUpload multiple filesmax_file_uploads limit issue

Solution to the problem of Uploading multiple filesmax_file_uploads limitation in


########### Sample code for multiple images ###########################

The above is the detailed content of How to upload multiple files in PHP. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!