Maison >développement back-end >tutoriel php >Exemple d'analyse d'une méthode pour implémenter plusieurs téléchargements de fichiers en PHP
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">
Utilisez ensuite AjaxFileUpload ou d'autres méthodes pour soumettre
et nommez-le en conséquence Le fichier fichier $file[‘image']
est converti en json et imprimé
Format normal
{"name":"7332.png","type":"image\/png","tmp_name":"\/tmp\/phplqppvR","error":0,"size":659}
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]}
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('errorCode'=>1, 'message'=>'请上传文件')); } //重新命名$_FILE 存储多个文件上传 $arrayFile = array(); foreach($_FILES[$field] as $key => $value){ $i = 0; if(is_array($value)) { foreach ($value as $v) { $i++; //重命名后重新放入超全局变量_FILE 保证键名唯一 也可直接上传 $name = $field . '_split_' . $i; $_FILES[$name][$key] = $v; } } } //是否上传多文件 if($i > 0){ for($j = 1; $j <= $i; $j++){ array_push($arrayFile, $field . '_split_' . $j); } }else{ array_push($arrayFile, $field); } //遍历file多个文件 上传 foreach($arrayFile as $file){ if (isset($_FILES[$file]) && $_FILES[$file]['name']) { //自定义上传方法 具体内容略 $data = $this->uploadFile($file, $path, uniqid()); if ( isset($data) && !empty($data) ) { if(!isset($data['errors'])){ //将上传结果存储于$result中 多图片地址使用逗号拼接 if(isset($result)){ $result = array('errorCode'=>0, 'message'=>$result['message'] . ',' . reset($data)); }else{ $result = array('errorCode'=>0, 'message'=>reset($data)); } }else{ //以下为返回错误信息 if(is_array(reset($data))){ $message = reset($data)[0]; }else{ $message = reset($data); } $result = array('errorCode' => 1, 'message' => $message); } } else { $result = array('errorCode'=>1, 'message'=>'上传失败'); break; } } else { $result = array('errorCode'=>1, 'message'=>'请上传文件'); break; } } //返回上传结果 return $result;
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!