stream_copy_to_stream(): Read of 8192 bytes failed with errno=21 Is a directory in laravel 8

Viewed 453

I'm try upload image and already set the upload_max_filesize and post_max_size to 5M. This is my controller for storing images.

public function store(Request $request)
{
    $input = $request->all();

    $validator = Validator::make($input, [
        'nama_mahasiswa' => 'required',
        'nim' => 'required',
        'images' => 'image|file|max:2048'
    ]);

    $image = $request->file('images');
    $new_image = 'photo-'.date('d-m-Y').'-'.rand().'.'
        .$image->getClientOriginalExtension();
    $request->file('images')->storeAs('foto/', $new_image);
    $input['images'] = $new_image;

    if ($validator->fails()) {
        return $this->sendError($validator->errors());
    }
    $mahasiswa = Mahasiswa::create($input);

    return $this->sendResponse(new MahasiswaResource($mahasiswa),
        'Data Berhasil Disimpan');
}

I'm using the validation max file. So when uploading an image <2MB, it works. But if I upload an image >2MB, it displays an error.

stream_copy_to_stream(): Read of 8192 bytes failed with errno=21 Is a directory

0 Answers
Related