Как убрать цикл для загрузки всех изображений
Помогите пожалуйста, как правильно тут убрать цикл, чтобы можно было загружать только одно фото, не все.
$this->data['id'] = $newsid;
foreach ($_FILES['file']['name'] as $k=>$v)
{
$uploaddir = "tmp/news_img/";
$apend=date('YmdHis').rand(100,1000).'.png';
$uploadfile = "$uploaddir$apend";
if($_FILES['file']['type'][$k] == "image/gif" || $_FILES['file']['type'][$k] == "image/png" || $_FILES['file']['type'][$k] == "image/jpg" || $_FILES['file']['type'][$k] == "image/jpeg")
{
$blacklist = array(".php", ".phtml", ".php3", ".php4");
foreach ($blacklist as $item)
{
if(preg_match("/$item\$/i", $_FILES['file']['name'][$k]))
{
$this->data['status'] = "error";
$this->data['error'] = "Нельзя загружать скрипты.";
}
}
if (move_uploaded_file($_FILES['file']['tmp_name'][$k], $uploadfile))
{
$size = getimagesize($uploadfile);
if ($size[0] < 1500 && $size[1] < 1500)
{
$news1Data = array(
'news_id' => $newsid,
'image' => $uploadfile
);
$this->newsImagesModel->createImage($news1Data);
$kk = $k+1;
} else {
$this->data['status'] = "error";
$this->data['error'] = "Изображение превышает пиксили.";
unlink($uploadfile);
}
} else {
$this->data['status'] = "error";
$this->data['error'] = "Файл не загружен.";
}
} else {
$this->data['status'] = "error";
$this->data['error'] = "Можно загружать только изображения в форматах jpg, jpeg, gif и png";}
}
} else {
$this->data['status'] = "error";
$this->data['error'] = $errorPOST;
}
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Везде, где есть обращение по ключу [$k] убираете его и всё. А foreach с фигурными скобками удаляете
Плюс ещё в html форме делаете name без квадратных скобок