Я работаю над сценарием, который должен загружать несколько файлов.У меня есть эта html структура
HTML
<form method="POST" action="" enctype="multipart/form-data">
<input type="file" name="test[]" multiple="multiple">
<button type="submit">Test upload</button>
</form>
И это сценарий класса загрузки php, который я написал.
PHP
<?php
class Uploader{
public function upload($files){
$this->files = count($files['name']);
try{
for($i = 0; $i < $this->files; $i++){
$this->error = $files['error'][$i];
$this->tmp_name = $files['tmp_name'][$i];
$this->name = basename($files['name'][$i]);
$this->size = $files['size'][$i];
if($this->error == UPLOAD_ERR_OK){
if(is_uploaded_file($this->tmp_name)){
move_uploaded_file($this->tmp_name, "$this->path/$this->name");
return 'ok';
} else {
throw new Exception('Error tmp file');
}
} else {
throw new Exception('Error');
}
}
}
catch(Exception $e){
return $e->getMessage();
}
}
}
?>
В прошлом я использовал цикл for()
, чтобы без проблем выполнить несколько задач загрузки, но теперь он будет загружать только один файл.Я также искал здесь на stackoverflow, и есть некоторые люди, которые не рекомендуют использовать цикл foreach()
для загрузки нескольких файлов.Кто-нибудь может предложить мне решение этой проблемы?