~~~
$files = request()->file();
if(empty($files['file'])){
return json(array("code"=>400,"msg"=>"上傳失敗,文件為空"));
}
try {
$savename = \think\facade\Filesystem::disk('public')->putFile('/other/', $files['file']);
$result = [
'code' => 200,
'msg' => "上傳成功",
'url' => '/storage/' . $savename,
];
} catch (\Exception $e) {
$result = [
'code' => 400,
'msg' => $e->getMessage()
];
}
if ($result['code'] == 200){
$url:上傳txt文件返回的路徑
$url = root_path() .'/public'.$result['url'];
if (file_exists($url)){
打開文件
$handle = fopen($url,"rb");
獲取文件內容
$content = fread($handle,filesize($url));
利用base64轉視頻編碼
$str = base64_decode(str_replace("data:application/octet-stream;base64,","",$content));
$videoUrl:拼接生成文件路徑
$videoUrl = 'storage/other/'.date('Ymd').'/'.date('YmdHis').randStr(10,'ALL').'.mp4';
生成MP4文件
file_put_contents($videoUrl,$str);
刪除txt文件
unlink($url);
return json(['data'=>$videoUrl]);
}
}