thinkphp 显示非public文件夹图片
项目需要用户上传的图片不能让所有人看见,而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');