Reputation:
I currently have an API where it uploads a file and its name specifically is 'Lesson IMG', meaning I only want to upload image file types because when I try to upload another file type, it also accept pdf file types.
Lesson create controller:
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$rules=[
'title'=>'required|unique:lesson',
'module_id'=>'required',
'content'=>'required',
'created_by'=>'required',
];
$validator = Validator::make($request->all(), $rules);
if($validator->fails()){
return response()->json($validator->errors(),400);
}
$data = $request->validate([
'title'=>'required',
'module_id'=>'required',
'content'=>'required',
'created_by'=>'required',
]);
$lessons = Lesson::create($data);
$uploaded_files = $request->file->store('public/uploads/');
$lessons->lesson_pdf = $request->file->hashName();
$results = $lessons->save();
return response(['message'=>"Lesson successfully created", $lessons],200);
}
Upvotes: 2
Views: 3509
Reputation: 831
If you want specific Image Types then used MIME-type Rules Like,
$rules = ['file' => 'required|mimes:jpeg,png,jpg,gif,svg'];
For More Information Refer This Link, https://laravel.com/docs/8.x/validation#basic-usage-of-mime-rule
Upvotes: 2