php 怎么读取图片输出到浏览器?

下面的是php手册例子,为什么我就运行不了,页面只显示一个打叉的图片替代符?//以二进制格式打开文件$name='./img/ok.png';$fp=fopen($nam... 下面的是 php 手册例子,为什么我就运行不了,页面只显示一个打叉的图片替代符?

// 以二进制格式打开文件
$name = './img/ok.png';
$fp = fopen($name, 'rb');

// 发送合适的报头
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));

// 发送图片并终止脚本
fpassthru($fp);
exit;
展开
 我来答
郭某人来此
2015-09-11 · TA获得超过1646个赞
知道答主
回答量:952
采纳率:100%
帮助的人:91万
展开全部
代码很简单,网上都能找到,但在我机子上就是显示不出来,显示出的一直是这个php文件路径,
费了点时间才搞定,原来是我的<?php这个标签前面有多的空格,删掉就ok了,细节问题,粗心得很,
真的很无语。
网上查了下,有这样一说:
如果php以图片,zip,exe等文件输出到浏览器,而前面还输出了其他字符,那就会是你看到的乱码。
应该是输出图片前有输出空格或其他字符造成的,可以检查一下输出图片前有没有其他字符,
如果是utf-8编码记得保存为无BOM的文件。

相关代码如下:

class imgdata{
public $imgsrc;
public $imgdata;
public $imgform;
public function getdir($source){
$this->imgsrc = $source;
}
public function img2data(){
$this->_imgfrom($this->imgsrc);
return $this->imgdata=fread(fopen($this->imgsrc,'rb'),filesize($this->imgsrc));
}
public function data2img(){
header("content-type:$this->imgform");
echo $this->imgdata;
//echo $this->imgform;
//imagecreatefromstring($this->imgdata);
}
public function _imgfrom($imgsrc){
$info=getimagesize($imgsrc);
//var_dump($info);
return $this->imgform = $info['mime'];
}
}
$n = new imgdata;
$n -> getdir("1.jpg");
$n -> img2data();
$n -> data2img();
使用:
可以从数据库读取地址.再输出<img src="" />
183525594
2015-01-02 · TA获得超过2922个赞
知道大有可为答主
回答量:3664
采纳率:58%
帮助的人:2071万
展开全部
你可以看看手册
如果用gd库读取的话,应该是imagecreatefrompng
追问
现在又可以了……不知道为什么。不过可以运行了,我贴的那代码,一点问题没有。谢谢你。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
若爱新Z
2015-04-28 · TA获得超过302个赞
知道小有建树答主
回答量:328
采纳率:0%
帮助的人:156万
展开全部
PHP手册中的例子

// 以二进制格式打开文件
$name = './img/ok.png';
$fp = fopen($name, 'rb');

// 发送合适的报头
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));

// 发送图片并终止脚本
fpassthru($fp);
exit;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式