2017-01-09 16 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

您需要從該行刪除$ mediaID

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

,並使其

$path = $media->hashName('custom_slide_media/'); 
相關問題