我有一个 php 脚本,用于根据请求将图像发送到移动设备。在当前版本中,脚本运行,在结束之前我使用 imagePNG() 将图像输出到设备,但是在阅读 php 在线手册中的示例时,我看到了这个示例:
<?php
header("Content-Type: image/png");
# Generate cachefile for image, if it doesn't exist
if( !file_exists($cachefile) ) {
$im = generateimage(); # some code generates an image resource
imagepng($im, $cachefile); # store the image to cachefile
# don't output it like this:
/* imagepng($im);*/
imagedestroy($im);
}
$fp = fopen($cachefile, 'rb'); # stream the image directly from the cachefile
fpassthru($fp);
exit;
?>
我使用此示例进行了一些修改以将我的图像发送到移动设备,它工作正常,但我有一些问题想问:1)这是否比从文件创建图像并使用 imagePNG 发送更有效?
2) 我也不应该在使用 fpassthru 后立即关闭文件吗?
3)如果我确实使用 fopen 是否意味着文件被锁定意味着没有其他设备,但在那一刻能够访问它被流式传输?
对此事的任何意见将不胜感激。