2017-01-09 15 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/'); 
相关问题