我讲一些图片和用户上传文件保存在了storage目录中(处于安全考虑,不希望用户随意下载),那么在需要显示该文件时,应该如何获取路径呢?
两个方案,第一个,php读取文件并输出,在Laravel中代码大致如下
// 控制器
class FileController extends Controller
{
public function show($id){
return File::findOrFail($id) -> downResponse();
}
}
// Model
public function downResponse(){
return new BinaryFileResponse($this -> downToLocal());
}
public function downToLocal(){
$temp_path = tempnam(sys_get_temp_dir(), $this->id);
$is_success = file_put_contents($temp_path, \Storage::disk('public')->get($this -> full_path));
return $temp_path;
}