最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP實(shí)現(xiàn)接收二進(jìn)制流轉(zhuǎn)換成圖片的方法

 更新時(shí)間:2017年01月10日 11:51:20   作者:Sara  
這篇文章主要介紹了PHP實(shí)現(xiàn)接收二進(jìn)制流轉(zhuǎn)換成圖片的方法,結(jié)合實(shí)例形式分析了php文件、目錄及圖形操作的相關(guān)技巧,需要的朋友可以參考下

本文實(shí)例講述了PHP實(shí)現(xiàn)接收二進(jìn)制流轉(zhuǎn)換成圖片的方法。分享給大家供大家參考,具體如下:

這里實(shí)現(xiàn)php 接收二進(jìn)制流轉(zhuǎn)換成圖片,所使用的圖片類imageUpload.php如下:

<?php
/**
 * 圖片類
* @version 1.0
*
* PHP默認(rèn)只識(shí)別application/x-www.form-urlencoded標(biāo)準(zhǔn)的數(shù)據(jù)類型。
* 因此,對(duì)型如text/xml 或者 soap 或者 application/octet-stream 之類的內(nèi)容無法解析,如果用$_POST數(shù)組來接收就會(huì)失敗!
* 故保留原型,交給$GLOBALS['HTTP_RAW_POST_DATA'] 來接收。
* 另外還有一項(xiàng) php://input 也可以實(shí)現(xiàn)此這個(gè)功能
* php://input 允許讀取 POST 的原始數(shù)據(jù)。和 $HTTP_RAW_POST_DATA 比起來,它給內(nèi)存帶來的壓力較小,并且不需要任何特殊的 php.ini 設(shè)置。php://input和 $HTTP_RAW_POST_DATA 不能用于 enctype="multipart/form-data"。
*/
class imageUpload {
  const ROOT_PATH = './';
  const FAIL_WRITE_DATA = 'Fail to write data';
  //沒有數(shù)據(jù)流
  const NO_STREAM_DATA = 'The post data is empty';
  //圖片類型不正確
  const NOT_CORRECT_TYPE = 'Not a correct image type';
  //不能創(chuàng)建文件
  const CAN_NOT_CREATE_FILE = 'Can not create file';
  //上傳圖片名稱
  public $image_name;
  //圖片保存名稱
  public $save_name;
  //圖片保存路徑
  public $save_dir;
  //目錄+圖片完整路徑
  public $save_fullpath;
  /**
   * 構(gòu)造函數(shù)
   * @param String $save_name 保存圖片名稱
   * @param String $save_dir 保存路徑名稱
   */
  public function __construct($save_name, $save_dir) {
    //set_error_handler ( $this->error_handler () );
    //設(shè)置保存圖片名稱,若未設(shè)置,則隨機(jī)產(chǎn)生一個(gè)唯一文件名
    $this->save_name = $save_name ? $save_name : md5 ( mt_rand (), uniqid () );
    //設(shè)置保存圖片路徑,若未設(shè)置,則使用年/月/日格式進(jìn)行目錄存儲(chǔ)
    $this->save_dir = $save_dir ? self::ROOT_PATH .$save_dir : self::ROOT_PATH .date ( 'Y/m/d' );
    //創(chuàng)建文件夾
    @$this->create_dir ( $this->save_dir );
    //設(shè)置目錄+圖片完整路徑
    $this->save_fullpath = $this->save_dir . '/' . $this->save_name;
  }
  //兼容PHP4
  public function image($save_name) {
    $this->__construct ( $save_name );
  }
  public function stream2Image() {
    //二進(jìn)制數(shù)據(jù)流
    $data = file_get_contents ( 'php://input' ) ? file_get_contents ( 'php://input' ) : gzuncompress ( $GLOBALS ['HTTP_RAW_POST_DATA'] );
    //數(shù)據(jù)流不為空,則進(jìn)行保存操作
    if (! empty ( $data )) {
      //創(chuàng)建并寫入數(shù)據(jù)流,然后保存文件
      if (@$fp = fopen ( $this->save_fullpath, 'w+' )) {
        fwrite ( $fp, $data );
        fclose ( $fp );
        $baseurl = "http://" . $_SERVER ["SERVER_NAME"] . ":" . $_SERVER ["SERVER_PORT"] . dirname ( $_SERVER ["SCRIPT_NAME"] ) . '/' . $this->save_name;
        if ( $this->getimageInfo ( $baseurl )) {
          echo $baseurl;
        } else {
          echo ( self::NOT_CORRECT_TYPE );
        }
      } else {
      }
    } else {
      //沒有接收到數(shù)據(jù)流
      echo ( self::NO_STREAM_DATA );
    }
  }
  /**
   * 創(chuàng)建文件夾
   * @param String $dirName 文件夾路徑名
   */
  public function create_dir($dirName, $recursive = 1,$mode=0777) {
    ! is_dir ( $dirName ) && mkdir ( $dirName,$mode,$recursive );
  }
  /**
   * 獲取圖片信息,返回圖片的寬、高、類型、大小、圖片mine類型
   * @param String $imageName 圖片名稱
   */
  public function getimageInfo($imageName = '') {
    $imageInfo = getimagesize ( $imageName );
    if ($imageInfo !== false) {
      $imageType = strtolower ( substr ( image_type_to_extension ( $imageInfo [2] ), 1 ) );
      $imageSize = filesize ( $imageInfo );
      return $info = array ('width' => $imageInfo [0], 'height' => $imageInfo [1], 'type' => $imageType, 'size' => $imageSize, 'mine' => $imageInfo ['mine'] );
    } else {
      //不是合法的圖片
      return false;
    }
  }
  /*private function error_handler($a, $b) {
   echo $a, $b;
  }*/
}
?>

PS:這里再為大家推薦幾款比較實(shí)用的圖片處理工具供大家參考使用:

在線圖片轉(zhuǎn)換BASE64工具:
http://tools.jb51.net/transcoding/img2base64

ICO圖標(biāo)在線生成工具:
http://tools.jb51.net/aideddesign/ico_img

在線Email郵箱圖標(biāo)制作工具:
http://tools.jb51.net/email/emaillogo

在線圖片格式轉(zhuǎn)換(jpg/bmp/gif/png)工具:
http://tools.jb51.net/aideddesign/picext

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP圖形與圖片操作技巧匯總》、《PHP基本語法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • php中Socket創(chuàng)建與監(jiān)聽實(shí)現(xiàn)方法

    php中Socket創(chuàng)建與監(jiān)聽實(shí)現(xiàn)方法

    這篇文章主要介紹了php中Socket創(chuàng)建與監(jiān)聽實(shí)現(xiàn)方法,以實(shí)例形式較為詳細(xì)的分析了Socket的創(chuàng)建、連接、初始化及監(jiān)聽等技巧,需要的朋友可以參考下
    2015-01-01
  • Nginx環(huán)境下PHP flush失效的解決方法

    Nginx環(huán)境下PHP flush失效的解決方法

    最近在工作中發(fā)現(xiàn)了一個(gè)問題,PHP的flush居然失效了,從網(wǎng)上找了一些資料,發(fā)現(xiàn)是Nginx的原因,所以這篇文章就給大家介紹了問題與解決辦法,有需要的朋友們下面來一起看看吧。
    2016-10-10
  • PHP中文亂碼解決方案

    PHP中文亂碼解決方案

    PHP+MYSQL做網(wǎng)站開發(fā)通常都會(huì)碰到瀏覽器輸出中文字符時(shí)亂碼,這個(gè)問題的原因主要是因?yàn)镠TML內(nèi)容編碼,PHP文件編碼和MySQL數(shù)據(jù)庫編碼這三者不一致造成的。今天我們來具體探討下出現(xiàn)中文亂碼后的解決方案。
    2015-03-03
  • php下刪除一篇文章生成的多個(gè)靜態(tài)頁面

    php下刪除一篇文章生成的多個(gè)靜態(tài)頁面

    php自定義函數(shù)之刪除一篇文章生成的多個(gè)靜態(tài)頁面,可能有多頁的文章,都是需要考慮到的。
    2010-08-08
  • php rmdir使用遞歸函數(shù)刪除非空目錄實(shí)例詳解

    php rmdir使用遞歸函數(shù)刪除非空目錄實(shí)例詳解

    我們大家都知道,php rmdir()函數(shù)用于刪除空目錄,但如果要?jiǎng)h除非空目錄,我們必須將非空目錄中的文件或子目錄刪除,本文章向大家介紹php如何使用遞歸函數(shù)刪除非空目錄,需要的朋友可以參考一下
    2016-10-10
  • PHP+Ajax實(shí)現(xiàn)的無刷新分頁功能詳解【附demo源碼下載】

    PHP+Ajax實(shí)現(xiàn)的無刷新分頁功能詳解【附demo源碼下載】

    這篇文章主要介紹了PHP+Ajax實(shí)現(xiàn)的無刷新分頁功能,結(jié)合具體實(shí)例形式分析了php+ajax通過pdo操作類讀取數(shù)據(jù)庫并分頁顯示的相關(guān)實(shí)現(xiàn)技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下
    2017-07-07
  • 數(shù)據(jù)庫中排序的對(duì)比及使用條件詳解

    數(shù)據(jù)庫中排序的對(duì)比及使用條件詳解

    PHP與MySQL數(shù)據(jù)庫中排序的對(duì)比及使用條件是本文我們主要要介紹的內(nèi)容,通常來說,執(zhí)行效率需要考慮CPU、內(nèi)存和硬盤等的負(fù)載情況
    2012-02-02
  • php跨站攻擊實(shí)例分析

    php跨站攻擊實(shí)例分析

    這篇文章主要介紹了php跨站攻擊的原理與防范技巧,以具體實(shí)例對(duì)php跨站攻擊進(jìn)行了較為詳細(xì)的分析,是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-10-10
  • Docker 如何布置PHP開發(fā)環(huán)境

    Docker 如何布置PHP開發(fā)環(huán)境

    本文主要介紹了如何使用Docker構(gòu)建PHP的開發(fā)環(huán)境,文中作者也探討了構(gòu)建基于Docker的開發(fā)環(huán)境應(yīng)該使用單容器還是多容器,各有什么利弊。推薦PHP開發(fā)者閱讀。
    2016-06-06
  • 如何在Ubuntu下啟動(dòng)Apache的Rewrite功能

    如何在Ubuntu下啟動(dòng)Apache的Rewrite功能

    本篇文章是對(duì)在Ubuntu下啟動(dòng)Apache的Rewrite功能的具體操作步驟進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-07-07

最新評(píng)論

岱山县| 荃湾区| 哈巴河县| 罗源县| 沙河市| 廊坊市| 启东市| 霞浦县| 靖江市| 吉林省| 肇州县| 九江县| 赤峰市| 长沙县| 杭锦旗| 高淳县| 错那县| 库伦旗| 乌兰察布市| 丹江口市| 兴安盟| 灵丘县| 洛川县| 新郑市| 福清市| 潜山县| 古田县| 铁岭市| 灵丘县| 广水市| 元阳县| 琼结县| 千阳县| 司法| 兴义市| 福建省| 赤水市| 深水埗区| 广河县| 云龙县| 渝北区|