Я создаю следующий репозиторий для загрузки файлов. Мне нужно проверить размер файла, и если проверка не удалась, перенаправите обратно в форму с ошибками. Но когда checkSize не удастся, перенаправление не произойдет. В чем проблема?Laravel 5.1 redirect() -> back() не работает
<?php
namespace app\Repositories;
class UploadFileRepository
{
public $fileNames=[];
protected $maxSize=2097152;
public function upload($files){
foreach ($files as $file){
if(!empty($file)){
$filename=$file->getClientOriginalName();
$this->checkSize($file);
$this->fileNames[]=$filename;
$file->move(base_path().'/public/uploads/', $filename);
}
}
}
protected function checkSize($file){
$fileSize=$file->getClientSize();
// dd($fileSize);
$filename=$file->getClientOriginalName();
if ($fileSize == 0) {
return redirect()->back()->withInput()->withErrors([ $filename. ' is empty.']);
} elseif ($fileSize > $this->maxSize) {
return redirect()->back()->withInput()->withErrors([ $filename. ' is too large.']);
} else {
return true;
}
}
}
Вопрос может быть: (1) Вызывается 'upload()'? и (2) Выполняется ли цикл foreach или условие if() '? Кажется, что нет никакого резерва, если есть пустой массив файлов или пустой файл ... –
Вы не должны перенаправлять кого-либо в любом месте. Это зависит только от вашего контроллера. –
Какая ошибка, что его возвращение? –