Comment télécharger plusieurs fichiers en PHP

墨辰丷
Libérer: 2023-03-27 21:30:01
original
2007 Les gens l'ont consulté

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;
}
Copier après la connexion

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);
  }
Copier après la connexion

4. aux fichiers

$i = 0;
$files = buildInfo();
Copier après la connexion

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;
    }
Copier après la connexion

6. Restreindre les types de fichiers

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

7. Restreindre si le type d'image est vrai

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

8. Déterminez la taille du fichier

if($file['size'] > $maxSize){
        exit("文件过大");
      }
Copier après la connexion

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

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

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++;
      }
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!