Heim >Backend-Entwicklung >PHP-Tutorial >Eine Methode zum Implementieren mehrerer Datei-Uploads in PHP
Als ich zuvor an einem Projekt gearbeitet habe, gab es viele Möglichkeiten, die Dateitypeingabe im Formular zu implementieren, um mehrere Bilder auszuwählen. Heute werde ich Ihnen eine Methode zum Implementieren mehrerer Datei-Uploads basierend auf PHP vorstellen es kann darauf verweisen
und verwenden Sie dann AjaxFileUpload oder andere Methoden zum Senden Konvertieren Sie die entsprechende benannte Datei<input type="file" id="image" class="file image hidden" name="image[]" multiple="true">in JSON für Drucken Normales Format
$file[‘image']
{"name":"7332.png","type":"image\/png","tmp_name":"\/tmp\/phplqppvR","error":0,"size":659}Alle Attribute werden in Arrays geändert und in der richtigen Reihenfolge angeordnet Zu diesem Zeitpunkt können Sie den folgenden Code verwenden, um das Bild
{"name":["7656.png","7718.png"],"type":["image/png","image/png"],"tmp_name":["/tmp/phpDzSovj","/tmp/phpP8kWmT"],"error":[0,0],"size":[357,662]}Zusammenfassung
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;
zu speichern
Das obige ist der detaillierte Inhalt vonEine Methode zum Implementieren mehrerer Datei-Uploads in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!