Page 1 of 1

Laden Sie Videos im Laravel-Projekt hoch

Posted: 21 Dec 2024, 15:24
by Guest
Ich habe Probleme, wenn ich versuche, ein Video/einen Film auf meine Website hochzuladen. Das Video wird nicht in der Datenbank gespeichert, sondern es wird wie vorgesehen ein Ordner „Film“ in meinen Dateien erstellt, in dem sich das Video befindet. Außerdem habe ich meine php.ini-Datei hinsichtlich der Größenanforderungen bearbeitet und in der Sitzung, die ich erstellt habe, steht, dass sie hochgeladen wurde. Hier ist mein Code

Ansicht:


{!! Form::open(['method'=>'POST', 'action'=> 'MovieController@store', 'files' => true]) !!}

{!! Form::label('movie_name', 'Enter Movie Name:') !!}

{!! Form::text('movie_name', null, ['class'=>'form-control'])!!}

{!! Form::label('uploaded_path', 'Select Movie:') !!}

{!! Form::file('uploaded_path', null, ['class'=>'form-control'])!!}



{!! Form::label('actor_id', 'Actors:') !!}
{!! Form::select('actor_id[]', $actors, null, ['class'=>'form-control js-example-basic-multiple', 'multiple' => 'multiple']) !!}

{!! Form::label('category_id', 'Category:') !!}
{!! Form::select('category_id[]', $categories, null, ['class'=>'form-control js-example-basic-multiple', 'multiple' => 'multiple']) !!}



MovieRequest:

public function rules()
{
return [
'movie_name' => 'required|max:255',
'uploaded_path' => 'mimetypes:video/avi,video/mpeg,video/mp4|required'
];
}


Verantwortlicher:

public function store(MovieRequest $request)
{
DB::beginTransaction();
try {
if ($request->hasFile('uploaded_path')) {
$filenameWithExt = $request->file('uploaded_path')->getClientOriginalName();
$filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
$extension = $request->file('uploaded_path')->getClientOriginalExtension();
$fileNameToStore = $filename. '_'.time().'.'.$extension;
$path = $request->file('uploaded_path')->storeAs('public/movies/', $fileNameToStore);
} else {
$fileNameToStore = 'novideo.mp4';
}

$movie = new Movie;
$movie->movie_name = $request->input('movie_name');
$movie->uploaded_path = $fileNameToStore;
$movie->actors()->attach($request->input('actor_id'));
$movie->categories()->attach($request->input('category_id'));
$movie->save();

DB::commit();
} catch (\Exception $e) {
DB::rollBack();
}
Session::flash('success', 'A movie was successfully UPLOADED in the database!');
return redirect()->route('movies.index');
}