背景:外包水平太差了,上传图片裁剪,先放服务器,再读取裁剪,我记得可以在用户本地裁剪的,这块都写成那样了,就那样吧,这块设计到图片显示,因支持多个域名和部署问题这块还得直接显示,PHP直接显示图片,用浏览器访问是不可能的,要用SRC:<img src="http://jackxiang.com/logo/getpic?filename=201310262031159804.png&rand=1382790675000">。
PHP读取图像文件并在浏览器上显示
去年做过一个项目,要把用户上传的图像文件用PHP读取图像文件并列出文字清单,当用户点击一个文件名后,就可以显示这个图像.
因为要考虑兼容各种不同的图像格式, 我使用了GD库, 判断出具体是那种图像文件(MINE),再调用相应的image生成函数imagecreatefromXXX(),生成一个img,再将这个img以jpeg格式输出至浏览器,虽然做出来了,但总觉得不满意.
今天有机会重新考虑这个功能,在php手册中发现几行代码,简洁明快,完全能实现我要的功能,还不需要GD库
代码如下:
$size = getimagesize($filename); //获取mime信息
$fp=fopen($filename, "rb"); //二进制方式打开文件
if ($size && $fp) {
header("Content-type: {$size['mime']}");
fpassthru($fp); // 输出至浏览器
exit;
} else {
// error
}
?>
代码量是我原来的1/10都不到,速度快了N倍.
外包说三年经验,这个没调出来,我看未必啊,
给他下面的参考代码都给弄错了,我调通了下,他继续:
来处:http://www.shangxueba.com/jingyan/122754.html
PHP读取图像文件并在浏览器上显示
去年做过一个项目,要把用户上传的图像文件用PHP读取图像文件并列出文字清单,当用户点击一个文件名后,就可以显示这个图像.
因为要考虑兼容各种不同的图像格式, 我使用了GD库, 判断出具体是那种图像文件(MINE),再调用相应的image生成函数imagecreatefromXXX(),生成一个img,再将这个img以jpeg格式输出至浏览器,虽然做出来了,但总觉得不满意.
今天有机会重新考虑这个功能,在php手册中发现几行代码,简洁明快,完全能实现我要的功能,还不需要GD库
代码如下:
$size = getimagesize($filename); //获取mime信息
$fp=fopen($filename, "rb"); //二进制方式打开文件
if ($size && $fp) {
header("Content-type: {$size['mime']}");
fpassthru($fp); // 输出至浏览器
exit;
} else {
// error
}
?>
代码量是我原来的1/10都不到,速度快了N倍.
外包说三年经验,这个没调出来,我看未必啊,
给他下面的参考代码都给弄错了,我调通了下,他继续:
来处:http://www.shangxueba.com/jingyan/122754.html
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/6763/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: jackxiang 编辑于2013-10-26 20:57
评论列表