PHP 资源返回

问题:返回地址默认下载资源 目的:解决默认下载,需要默认返回展示内容 环境:php7.4 HDFS 今天优化项目,发现之前对资源的返回都是直接返回了HDFS 的地址,这样是很不安全的,直接把服务器路径地址暴露了。 类似:

优化方案:建立独立的资源库表,每次上传都给返回地址 http://test.cn/{uuid}/{ext} 这种方式,每次都通过uuid在去获取到HDFS对应的资源,如下 这样避免了暴露具体地址等相关信息,同时也需要对路由做限制,我这边是做了 ->where('ext', 'jpg|png|gif|jpeg|svg|bmp|ico|tiff|tif|webp') 的限制

定义常量:

class CommonEnum
{

    const EXT = [
        'jpg' => 'image/jpeg',
        'png' => 'image/png',
        'gif' => 'image/gif',
        'jpeg' => 'image/jpeg',
        'svg' => 'image/svg+xml',
        'bmp' => 'image/bmp',
        'ico' => 'image/x-icon',
        'tiff' => 'image/tiff',
        'tif' => 'image/tiff',
        'webp' => 'image/webp',
    ];
}

控制器伪代码:

 public function getImg($code,$ext) {
        $data = $this->commonService->getImg($code);
        return response($data)
            ->header('Content-Type', CommonEnum::EXT[$ext])
            ->header('Content-Disposition', 'inline'); // 设置为inline以在浏览器中显示图片
    }

这样就完成了,也可以通过标签来访问

码上有钱的博客
请先登录后发表评论
  • latest comments
  • 总共0条评论