2017-01-09 6 views
0

私のアプリケーションには、ユーザーが画像や動画をアップロードできるメディアアップロード機能が含まれています。画像を保存するのに問題はありませんが、動画を保存するときに問題が発生しています。画像はintervention/imageを使用してリサイズされますが、動画はリサイズされません。動画を保存しようとすると、ファイルのハッシュネーム+拡張子を含む新しいフォルダが作成され、動画はそこにハッシュ名+拡張子として保存されます。この例は以下のようになります:Laravelアップロードされたビデオは、ルートフォルダではなくファイル名のディレクトリに保存されます

myproject/storage/app/public/media/{id}/b8e79fb3a719afc566f3cbe0ca47e47b.mp4/b8e79fb3a719afc566f3cbe0ca47e47b.mp4

それは次のようになります。

myproject/storage/app/public/media/{id}/b8e79fb3a719afc566f3cbe0ca47e47b.mp4

は、ここでメディアを保存するための私のコードです:

protected function saveMedia(UploadedFile $media, int $mediaId) 
{ 


    $mimeType = $media->getMimeType(); 
    $mediaType = explode('/', $mimeType)[0]; 

    $path = $media->hashName('custom_slide_media/'.$mediaId); 
    if ($mediaType == 'video') 
    { 
     Storage::disk('public')->put($path, $media); 
    } 
    else 
    { 

     $disk = Storage::disk('public'); 
     $disk->put($path, $this->formatImage($media)); 
    } 

    return Storage::disk('public')->url($path); 
} 

protected function formatImage($file) 
{ 
    return (string) $this->imageManager->make($file->path()) 
     ->fit(900)->encode(); 
} 

誰も教えてもらえます何がうまくいかないの?おかげ

答えて

1

あなたはこのラインから

$path = $media->hashName('custom_slide_media/'.$mediaId); 

を$ MEDIAIDを削除し、確認する必要があり、それ

$path = $media->hashName('custom_slide_media/'); 
関連する問題