Maison > Article > développement back-end > Comment télécharger plusieurs fichiers en PHP
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!