/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Responsequest $request * @return \Illuminate\Http\Response */ public function store(CreateSongRequest $request) { if (!$request->hasFile('song')) { //throw exception? return; } elseif (!$request->file('song')->isValid()) { //throw exception? return; } $user = Auth::user(); $data = $request->all(); $path = 'songs/' . $user->id . '/'; $name = str_random(32); $extension = $request->file('song')->guessExtension(); $extension = $extension = 'mpga' ? '.mp3' : '.' . $extension; //mpga to mp3 $fileName = $name . $extension; if (Storage::put($path . $name . $extension, file_get_contents($request->file('song')->getRealPath()))) { $song = new Song(['user_id' => $user->id, 'file_name' => $fileName, 'name' => $data['name'], 'description' => isset($data['description']) ? $data['description'] : null, 'url' => isset($data['url']) ? $data['url'] : null, 'label' => isset($data['label']) ? $data['label'] : null, 'downloads_enabled' => isset($data['downloads_enabled']) ? true : false, 'comments_enabled' => isset($data['comments_enabled']) ? true : false, 'public' => isset($data['public']) ? true : false, 'license' => isset($data['license']) ? $data['license'] : null, 'released_at' => $data['released_at'], 'file_location' => $path]); if ($song->save()) { if (isset($data['tags']) && $data['tags'] != '') { $tags = explode(',', $data['tags']); $song->tag($tags); } } return redirect('dashboard'); } }