W Laravel 5.3 próbuję złapać, czy przesłany plik ma większy rozmiar pliku niż upload_max_filesize. Pole przesyłania nie jest wymagane.Laravel 5.3, sprawdź czy przesłany plik jest większy niż upload_max_filesize (opcjonalny upload)
próbowałem tej metody, ale to nie działa
public function checkFile($field)
{
if (request()->hasFile($field)){ // check if field is present
$file = request()->file($field);
if (!$file->isValid()){ // now check if it's valid
return back()->with('error', $file->getErrorMessage());
}
}
}
nie mogę używać tylko if (!$file->isValid())
ponieważ pole plik jest opcjonalny i ja dostać Call to a member function isValid() on null
jeśli pole jest puste.
Muszę więc sprawdzić, czy pole jest obecne przy użyciu if (request()->hasFile($field))
, ale to nie działa dla dużych plików, ponieważ dd(request()->hasFile('picture'))
zwraca false
.
Oczywiście mogę polegać na domyślnych komunikatach Laravel Validator, ale dostaję atrapę The picture failed to upload.
, która nie daje żadnej wskazówki użytkownikowi.
http://stackoverflow.com/questions/2840755/how-to-specify-the-max-file-upload-limit-in-php –
Sprawdź moją odpowiedź –