zoukankan      html  css  js  c++  java
  • php读取图片内容并输出到浏览器的实现代码

    如果php以图片,zip,exe等文件输出到浏览器,而前面还输出了其他字符,就会有乱码。

    代码很简单,网上都能找到,但在我机子上就是显示不出来,显示出的一直是这个php文件路径,费了点时间才搞定,原来是<?php这个标签前面有多的空格,删除即可。

    网上查了下,有这样一说:
    如果php以图片,zip,exe等文件输出到浏览器,而前面还输出了其他字符,那就会是你看到的乱码。
    应该是输出图片前有输出空格或其他字符造成的,可以检查一下输出图片前有没有其他字符,如果是utf-8编码记得保存为无BOM的文件。
    相关代码如下:

    <?php
    /**
    * 读取图片内容 输出至浏览器
    * edit by www.jbxue.com
    */
    
    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();
    ?>
  • 相关阅读:
    LAMP
    监控和安全运维 1.8 zabbix服务端安装
    监控和安全运维 1.7 nagios配置邮件告警
    易道用车-拿什么说爱你
    unix exec族函数 关于参数的疑惑
    关于 Unix 用户权限及进程权限及 Saved set-user-id
    ANSI C中关于FILE流的一些
    Filco minila 的蛋疼。
    IIS32位,64位模式下切换
    Gvim+Emmet.vim 那些事。
  • 原文地址:https://www.cnblogs.com/study100/p/3245556.html
Copyright © 2011-2022 走看看