PHP: 如何输出图片文件?
PHP: How to output image files?
我想使用 PHP 将图像添加到动态生成的页面(我使用自己的模板系统)。
注意:出于安全原因,我控制图像访问。
包含图像的文件夹位于站点根目录之上,因此无法通过 HTML 链接访问。
我相信有一种方法,其中 PHP returns 文件作为资源,在 header 中指定类型,并且(如果我错了请纠正我)专门为 imagejpeg()
.
设计的功能
请指教,如果可以写一个简单的例子。
你需要做的输出图像文件的顺序是:
PHP 从文件加载图像,这是 file_get_contents
或 fopen
打开并访问文件本身。如果该文件是一个特定的图像文件,您可以使用 imagecreatefromjpeg()
打开该文件,这将执行此操作,从 JPEG 源生成一个图像文件。
然后,一旦从文件系统上的任何位置加载文件,包括 Web 根目录之外的目录,PHP 可以使用一些 HTTP Headers 输出上面第 1 点捕获的数据并直接引用加载的图像。
NOTE: this means that the sole output of this PHP file is the image,
so file.php === image.jpg in this case.
举个简单的例子:
图像存储在/home/images/image1.jpg
PHP 文件从 /home/site/imagecall.php
运行
PHP 文件说:
<?php
if (file_exists('/home/images/image1.jpg')){
$image = imagecreatefromjpeg('/home/images/image1.jpg');
if ($image){
header('Content-Type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
}
else {
die("Image could not be loaded");
}
}
这是您的起点,绝不是绝对指南。探索。
有用的参考资料:
我想使用 PHP 将图像添加到动态生成的页面(我使用自己的模板系统)。
注意:出于安全原因,我控制图像访问。
包含图像的文件夹位于站点根目录之上,因此无法通过 HTML 链接访问。
我相信有一种方法,其中 PHP returns 文件作为资源,在 header 中指定类型,并且(如果我错了请纠正我)专门为 imagejpeg()
.
请指教,如果可以写一个简单的例子。
你需要做的输出图像文件的顺序是:
PHP 从文件加载图像,这是 file_get_contents
或 fopen
打开并访问文件本身。如果该文件是一个特定的图像文件,您可以使用 imagecreatefromjpeg()
打开该文件,这将执行此操作,从 JPEG 源生成一个图像文件。
然后,一旦从文件系统上的任何位置加载文件,包括 Web 根目录之外的目录,PHP 可以使用一些 HTTP Headers 输出上面第 1 点捕获的数据并直接引用加载的图像。
NOTE: this means that the sole output of this PHP file is the image, so file.php === image.jpg in this case.
举个简单的例子:
图像存储在/home/images/image1.jpg
PHP 文件从 /home/site/imagecall.php
运行PHP 文件说:
<?php
if (file_exists('/home/images/image1.jpg')){
$image = imagecreatefromjpeg('/home/images/image1.jpg');
if ($image){
header('Content-Type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
}
else {
die("Image could not be loaded");
}
}
这是您的起点,绝不是绝对指南。探索。
有用的参考资料: