2017-01-09 3 views
0

мое приложение содержит функцию массовой загрузки, в которой пользователи могут загружать изображения и видео. У меня нет проблем с сохранением изображений, но у меня проблема при сохранении видео. Изображения изменяются с использованием intervention/image, но видео это не так. Когда я пытаюсь сохранить видео, создается новая папка с hashname файла + расширение, и видео сохраняется там, также как hashname + расширение. Примером этого может быть следующим: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

вам нужно удалить $ MediaId от этой линии

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

и сделать его

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