前端’是UE4,通過http協(xié)議從我的nginx服務(wù)器下載大文件,文件傳輸必須將數(shù)據(jù)使用base64加密,網(wǎng)上百度了很多傳輸方法,這些方法都是針對前端是瀏覽器的情況,而我現(xiàn)在的情況是我服務(wù)器只是提供一個數(shù)據(jù)接口,‘前端’并不是瀏覽器,百度的方法如下:1.fread分段讀取2.readfile整個讀取3.file_get_counts整個讀取4.curl傳輸數(shù)據(jù)是通過base64加密傳輸,所以分段傳輸好像不能實(shí)現(xiàn),只能將文件整個讀取出來,base64加密,然后傳輸,我的代碼如下:public function actionPak()
{
set_time_limit(0); //接收上傳的數(shù)據(jù)
$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沒有嘗試過,其他方法都試過,現(xiàn)在的問題就是對于小文件傳輸是沒有問題,當(dāng)文件大小有幾十M到幾百M(fèi)的時候,就會出現(xiàn)傳輸失敗的情況。有沒有大佬指點(diǎn)一下,謝謝
- 1 回答
- 0 關(guān)注
- 1747 瀏覽
添加回答
舉報(bào)
0/150
提交
取消