Maison >développement back-end >tutoriel php >Une méthode pour implémenter plusieurs téléchargements de fichiers en php
Lorsque je travaillais sur un projet auparavant, il existait de nombreuses façons d'implémenter la saisie du type de fichier dans le formulaire pour sélectionner plusieurs images. Aujourd'hui, je vais partager avec vous une méthode pour implémenter plusieurs téléchargements de fichiers basés sur PHP. il peut s'y référer
puis d'utiliser AjaxFileUpload ou d'autres méthodes pour soumettre Convertir le fichier nommé correspondant<input type="file" id="image" class="file image hidden" name="image[]" multiple="true">en json pour impression Format normal
$file[‘image']
{"name":"7332.png","type":"image\/png","tmp_name":"\/tmp\/phplqppvR","error":0,"size":659}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
{"name":["7656.png","7718.png"],"type":["image/png","image/png"],"tmp_name":["/tmp/phpDzSovj","/tmp/phpP8kWmT"],"error":[0,0],"size":[357,662]}Résumé
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;
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!