Exemple d'analyse d'une méthode pour implémenter plusieurs téléchargements de fichiers en PHP

小云云
Libérer: 2023-03-19 21:30:02
original
1471 Les gens l'ont consulté

Cet article partage principalement avec vous une méthode de téléchargement de plusieurs fichiers en PHP Auparavant, lors de l'implémentation de la saisie du type de fichier dans le formulaire pour sélectionner plusieurs images, j'ai trouvé un moyen qui n'est peut-être pas le meilleur, mais qui est réalisable. tests personnels et prend en charge ie7 et supérieur et le navigateur Chrome, j'espère que cela pourra aider tout le monde.

Utilisez l'attribut multiple de sélection de fichiers multiples normal sous la forme


<input type="file" id="image" class="file image hidden" name="image[]" multiple="true">
Copier après la connexion

Utilisez ensuite AjaxFileUpload ou d'autres méthodes pour soumettre

et nommez-le en conséquence Le fichier fichier $file[‘image&#39;] est converti en json et imprimé

Format normal


{"name":"7332.png","type":"image\/png","tmp_name":"\/tmp\/phplqppvR","error":0,"size":659}
Copier après la connexion

mais le résultat à ce moment est


{"name":["7656.png","7718.png"],"type":["image/png","image/png"],"tmp_name":["/tmp/phpDzSovj","/tmp/phpP8kWmT"],"error":[0,0],"size":[357,662]}
Copier après la connexion

Tous les attributs sont transformés en tableaux et disposés dans l'ordre

À ce stade, vous pouvez utiliser le code suivant pour enregistrer l'image


if (!isset($_FILES[$field])) {
  return new JsonResponse(array(&#39;errorCode&#39;=>1, &#39;message&#39;=>&#39;请上传文件&#39;));
}
//重新命名$_FILE 存储多个文件上传
$arrayFile = array();
foreach($_FILES[$field] as $key => $value){
  $i = 0;
  if(is_array($value)) {
    foreach ($value as $v) {
      $i++;
      //重命名后重新放入超全局变量_FILE 保证键名唯一 也可直接上传
      $name = $field . &#39;_split_&#39; . $i;
      $_FILES[$name][$key] = $v;
    }
  }
}
//是否上传多文件
if($i > 0){
  for($j = 1; $j <= $i; $j++){ array_push($arrayFile, $field . &#39;_split_&#39; . $j); } }else{ array_push($arrayFile, $field); } //遍历file多个文件 上传 foreach($arrayFile as $file){ if (isset($_FILES[$file]) && $_FILES[$file][&#39;name&#39;]) { //自定义上传方法 具体内容略 $data = $this->uploadFile($file, $path, uniqid());
    if ( isset($data) && !empty($data) ) {
      if(!isset($data[&#39;errors&#39;])){
        //将上传结果存储于$result中 多图片地址使用逗号拼接
        if(isset($result)){
          $result = array(&#39;errorCode&#39;=>0, &#39;message&#39;=>$result[&#39;message&#39;] . &#39;,&#39; . reset($data));
        }else{
          $result = array(&#39;errorCode&#39;=>0, &#39;message&#39;=>reset($data));
        }
      }else{
        //以下为返回错误信息
        if(is_array(reset($data))){
          $message = reset($data)[0];
        }else{
          $message = reset($data);
        }           
        $result = array(&#39;errorCode&#39; => 1, &#39;message&#39; => $message);
      }
    } else {
      $result = array(&#39;errorCode&#39;=>1, &#39;message&#39;=>&#39;上传失败&#39;);
      break;
    }
  } else {
    $result = array(&#39;errorCode&#39;=>1, &#39;message&#39;=>&#39;请上传文件&#39;);
    break;
  }
}
//返回上传结果
return $result;
Copier après la connexion

Recommandations associées :

Comment implémenter des fonctions courantes de téléchargement de fichiers sur les pages Web PHP

Utilisation d'Alibaba Cloud OSS pour le téléchargement de fichiers PHP

Fichier unique PHP et téléchargement de fichiers multiples examples_php exemples

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!