PHP实现提取一个图像文件并在浏览器上显示的代码

yipeiwu_com6年前PHP代码库
去年做过一个项目,要把用户上传的图像文件列出文字清单,当用户点击一个文件名后,就可以显示这个图像.

因为要考虑兼容各种不同的图像格式, 我使用了GD库, 判断出具体是那种图像文件(MINE),再调用相应的image生成函数imagecreatefromXXX(),生成一个img,再将这个img以jpeg格式输出至浏览器,虽然做出来了,但总觉得不满意.

今天有机会重新考虑这个功能,在php手册中发现几行代码,简洁明快,完全能实现我要的功能,还不需要GD库

复制代码 代码如下:

<?php
$size = getimagesize($filename); //获取mime信息
$fp=fopen($filename, "rb"); //二进制方式打开文件
if ($size && $fp) {
header("Content-type: {$size['mime']}");
fpassthru($fp); // 输出至浏览器
exit;
} else {
// error
}
?>


代码量是我原来的1/10都不到,速度快了N倍.

相关文章

PHP 可阅读随机字符串代码

复制代码 代码如下: /************** *@length - length of random string (must be a multiple of 2) *****...

劣质的PHP代码简化

复制代码 代码如下:<? echo("<p>search results for query:"). $_GET['query'].".</p>"; ?&g...

php匹配字符中链接地址的方法

本文实例讲述了php匹配字符中链接地址的方法。分享给大家供大家参考。具体如下: 判断一个字符串是否含有超级链接,代码如下: 复制代码 代码如下:$str="ssdsf<a targ...

PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案

前言 mcrypt 扩展已经过时了大约10年,并且用起来很复杂。因此它被废弃并且被 OpenSSL 所取代。 从PHP 7.2起它将被从核心代码中移除并且移到PECL中。 PHP手册在7...

PHP 多维数组排序实现代码

array_multisort (PHP 4, PHP 5) array_multisort -- 对多个数组或多维数组进行排序 说明 bool array_multisort ( ar...