<?php
class SomeDingoController extends \Illuminate\Routing\Controller
{
    public function update(\Illuminate\Http\Request $request, $id)
    {
        $medium = Medium::findOrFail($id);

        //no, we cannot use $request->getContentType()
        // because it tries to map to a format
        $type = $request->headers->get('CONTENT_TYPE');
        if (substr($type, 0, 6) == 'image/') {
            //manually handle PUT file updates
            $path = tempnam(sys_get_temp_dir(), 'put-fileupload-');
            file_put_contents($path, $request->getContent());
            $medium->file = new \Illuminate\Http\UploadedFile(
                $path, 'dummy', $type
            );

        } else {
            $this->validate(...);
            $medium->fill($request->all();
        }

        $medium->save();
        return $medium;
    }
?>
