$file_name = $file->getClientOriginalName();
if (!preg_match('/[^(\w)|(\x7F-\xFF)|(\s)|(\.)|(\-)]/', $file_name)){
$file_type = FileStorageType::findOrFail($file_type_id);
$rules = '';
if ($file_type->file_extension!=''){
$rules.='mimes:'.$file_type->file_extension;
$rules.='|mimetypes:application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/msword,application/pdf';
$rules.='|max:'.$file_type->file_maxsize;
}
$validator = Validator::make(array($name=>$file), array($name=>$rules));
if($validator->passes()){
$file_extension = $file->getClientOriginalExtension();
$file->move($path, $file_name);
$insert = array();
$insert['filename'] = $file_name;
$insert['file_type_id'] = $file_type_id;
$res = FileStorage::create($insert);
return $res->id;
}
else {
return $validator;
}
}
в $name передаю label то есть название на русском, например "Обязательный файл для прикрепления" в $file объект, ну в $rules соответственно правило
if (!preg_match('/[^(\w)|(\x7F-\xFF)|(\s)|(\.)|(\-)]/', $file_name)){ //проверка имени файлы на регулярку =)