示例#1
0
 /**
  * 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');
     }
 }