Привет всем! В моем приложении Laravel у меня есть функция загрузки файла Excel. Я получил этот код из Интернета и скорректировал его в своем приложении. Проблема в том, что она не улавливает фатальное исключение ошибки, которое возникает, когда пользователь отправляет файл, но не выбрал файл. Я не понимаю, почему его не поймали. Я добавлю часть своего контроллера.Catch FatalErrorException PHP
public function upload() {
$file = array('thefile' => Input::file('thefile'));
$rules = array('excel' => 'excel');
$validator = Validator::make($file, $rules);
if ($validator->fails()) {
return Redirect::to('UploadExcelFile')->withInput()->withErrors($validator);
}
else {
try{
// FatalErrorException happens in this line!
if (Input::file('thefile')->isValid()) {
$destinationPath = 'uploads';
$fileName = Input::file('thefile')->getClientOriginalName();
Input::file('thefile')->move($destinationPath, $fileName);
Session::flash('success', 'Upload successfully');
$fileNameJSON = exec("python /path/to/script/ExcelToJSON3.py $fileName"); // This returns a full path name of the JSON file that is made...
if ($fileNameJSON == null){
return Redirect::to('/dashboard/input');
}
else {
// Getting the ID from the file that is uploaded
try {
$jsonDecode = json_decode(file_get_contents($fileNameJSON));
} catch (ErrorException $e){
return Redirect::to('/errorpage')->with(array('status'=> 'ErrorException'));
}
A lot of code for handling the data entered....
}catch (FatalErrorException $e){
return Redirect::to('/errorpage')->with(array('status'=> 'FatalErrorException'));
}
}
return true;
}
Ошибка, которая дается:
FatalErrorException в UploadExcelFileController.php строке 35: вызов функции члена IsValid() на не-объект
Итак, я не» t понять, почему этот код не обрабатывает исключение ошибки и как я могу это исправить!
Вы импортируете 'Symfony \ Component \ Debug \ Exception \ FatalErrorException' в верхней части класса как' use Symfony \ Component \ Debug \ Exception \ FatalErrorException'? –
Да! Я импортировал FatalErrorException со всем именем пути, без всего имени пути и, как предложил @ Энди. Но я все равно получаю ту же ошибку. –