Maison >développement back-end >tutoriel php >Comment télécharger plusieurs fichiers en PHP

Comment télécharger plusieurs fichiers en PHP

墨辰丷
墨辰丷original
2018-05-25 10:51:142053parcourir

Cet article présente principalement les informations pertinentes sur l'exemple de code pour télécharger plusieurs fichiers en PHP. Il a une certaine valeur de référence. Les amis intéressés peuvent s'y référer.

Télécharger plusieurs fichiers

1. Avant d'exploiter plusieurs informations de fichiers, vous devez créer les informations du fichier et utiliser la fonction buildInfo pour convertir le tableau tridimensionnel en un tableau bidimensionnel qui est pratique pour les opérations sur les fichiers.

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;
}

Le jugement entre un fichier unique et plusieurs fichiers réside dans le type de tableau de fichiers, fichier unique (tableau bidimensionnel), fichiers multiples (trois -tableau dimensionnel).

2. Fonction et paramètres de téléchargement de fichiers


Copier le code Le code est le suivant :


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

chemin, enregistrez le répertoire. allowExt, tableau d'extensions autorisées. maxSizeLa taille maximale du fichier de téléchargement. imgFlag, identifiant du fichier image.

3. Déterminez si le répertoire dans lequel le fichier est enregistré existe

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

4. aux fichiers

$i = 0;
$files = buildInfo();

5. Déterminez le type d'erreur du fichier

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;
    }

6. Restreindre les types de fichiers

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

7. Restreindre si le type d'image est vrai

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

8. Déterminez la taille du fichier

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

9. Déterminez si le fichier est téléchargé par courrier

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

10. Renommez le fichier (unique et non dupliqué) et enregistrez-le dans le répertoire cible

$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++;
      }

Réécrivez le nom des informations du fichier dans le tableau, supprimez les variables file['error'] et file['tmp_name']. Enfin, enregistrez les fichiers téléchargés avec succès dans le tableau uploadedFiles.

Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun.


Recommandations associées :

Télécharger plusieurs fichiers en phpProblème de limite max_file_uploads

Solution au problème du téléchargement de plusieurs fichierslimitation de max_file_uploads en php

PHPtéléchargement de plusieurs fichiers, exemple de code pour plusieurs images

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn