繁体   English   中英

laravel如何从远程服务器下载视频文件?

[英]How to download a video file from a remote server in laravel?

我有 3 个服务器,1 个用于 api,1 个用于内容,1 个用于前端。 当我点击前端时,我想下载一个 mp4 视频文件。 基本流程-前端按钮点击下载然后拨打api,在api下载一个文件。 这是我已经尝试过的-

前端

<a role="button" class="btn btn-hover iq-button iq-btn-sm"  download href="{{config('app.base_api_url').'/downloadAFile?url='.getsinglecontentvideobaseurl().$video->filename.'.'.$video->filetype.'&filetype=video/'.$video->filetype.'&filename='.$video->filename.'.'.$video->filetype.'"'}}">
    Download
</a>

Api

public function downloadAFile(Request $request)
{
    $url = $request->url ?? '';
    $filename = $request->filename ?? 'download.mp4';
    $filetype = $request->filetype ?? 'video/mp4';

    $file = $url;
    $headers = array('Content-Type: '.$filetype);
    return Response::download($file, $filename, $headers);  
}

当我单击下载时出现此错误-

Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException
此 api 代码仅适用于 $url 是外部在线服务器。 否则它不会工作。 文件名不能包含空格。
    public function downloadAFile(Request $request)
    {
        ini_set('max_execution_time', 600);

        $url = $request->url ?? '';
        $filename = $request->filename ?? 'download.mp4';

        $tempImage = tempnam(sys_get_temp_dir(), $filename);
        copy($url, $tempImage);

        return response()->download($tempImage, $filename);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM