项目需要用户上传的图片不能让所有人看见,而public里面的普遍资源通过输入地址是可以直接访问的。我们只有把图片资源放在其他自定义文件夹里面。虽然这样直接输入地址无法访问了,但是我们怎样能在项目内部访问到呢。这里我们需要用到GD库来显示图片

首先我们需要在composer.json里面引入,最后一行就是需要引入的库

    "require": {
        "php": ">=5.6.0",
        "topthink/framework": "5.1.*",
        "topthink/think-captcha": "^2.0",
        "topthink/think-image": "^1.0",
        "topthink/think-helper": "^3.0",
        "topthink/think-migration": "^2.0",
        "topthink/think-worker": "^2.0",
        "topthink/think-mongo": "^2.0",
        "ext-gd": "*"
    },

支持文件类型:

  • imagegif():以 GIF 格式将图像输出到浏览器或文件
  • imagejpeg():以 JPEG 格式将图像输出到浏览器或文件
  • imagepng():以 PNG 格式将图像输出到浏览器或文件
  • imagewbmp():以 WBMP 格式将图像输出到浏览器或文件

实例一(基本方法:以png文件为例)

$file_path = 'xxxx';
$im = imagecreatefrompng($file_path);
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
exit;

实例二(改进方法:以png文件为例)

$file_path = 'xxxx';
$im = imagecreatefrompng($file_path);
ob_start();
imagepng($im);
$content = ob_get_clean();
imagedestroy($im);
return response($content,200,['content-length'=>strlen($content)])->contentType('image/png');

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注