user16621915
user16621915

Reputation:

Laravel: How to validate/restrict specific file type upload

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

Answers (1)

Ankita Dobariya
Ankita Dobariya

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

Related Questions