如何从nginx服务器下载大文件?

前端’是UE4,通过http协议从我的nginx服务器下载大文件,文件传输必须将数据使用base64加密,网上百度了很多传输方法,这些方法都是针对前端是浏览器的情况,而我现在的情况是我服务器只是提供一个数据接口,‘前端’并不是浏览器,百度的方法如下:

1.fread分段读取
2.readfile整个读取
3.file_get_counts整个读取
4.curl传输

数据是通过base64加密传输,所以分段传输好像不能实现,只能将文件整个读取出来,base64加密,然后传输,我的代码如下:

public function actionPak()
    {
        set_time_limit(0);        //接收上传的数据
        $post_data = file_get_contents('php://input');  
       // 解析json字符串
        $json_obj = json_decode($post_data);        if (isset($json_obj->Num)) {
            $file = \Yii::getAlias('@webroot') . '/pattern/pak/' . $json_obj->Num . '.pak';            //开启缓存
            ob_start();
            readfile($file);
            $data = ob_get_contents();
            ob_end_clean();            return base64_encode($data);
        } else {            return base64_encode('false');
        }
    }

除了curl没有尝试过,其他方法都试过,现在的问题就是对于小文件传输是没有问题,当文件大小有几十M到几百M的时候,就会出现传输失败的情况。有没有大佬指点一下,谢谢


海绵宝宝撒
浏览 1700回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP