PHP はバイナリ データ ストリームを受信し、それをピクチャに変換します_PHP チュートリアル

WBOY
リリース: 2016-07-13 17:50:10
オリジナル
853 人が閲覧しました

PHPコード
1 2 /**
3 * 写真カテゴリ
4 * @author Haroldphp@163.com
5 * @バージョン 1.0
6 *
7*/
8クラス画像{
9 const ROOT_PATH = './';
10 const FAIL_WRITE_DATA = 'データの書き込みに失敗しました';
11 //データフローなし
12 const NO_STREAM_DATA = '投稿データが空です';
13 //画像の種類が間違っています
14 const NOT_CORRECT_TYPE = '正しい画像タイプではありません';
15 //ファイルを作成できません
16 const CAN_NOT_CREATE_FILE = 'ファイルを作成できません';
17 //アップロード画像名
18 公開 $image_name;
19 //画像の保存名
20 公開 $save_name;
21 //画像保存パス
22 公開 $save_dir;
23 //ディレクトリ + 画像へのフルパス
24 パブリック $save_fullpath;
25
26 /**
27 * コンストラクター
28 * @param String $save_name 写真の名前を保存します
29 * @param String $save_dir 保存パス名
30*/
31 パブリック関数 __construct($save_name, $save_dir) {
32 //set_error_handler ( $this->error_handler () );
33
34 //保存する画像の名前を設定します。設定しない場合は、一意のファイル名がランダムに生成されます
35 $this->save_name = $save_name ? $save_name : md5 ( mt_rand (), uniqid () );
36 //画像を保存するパスを設定します。設定されていない場合は、ディレクトリの保存に年/月/日の形式を使用します
37 $this->save_dir = $save_dir ? self::ROOT_PATH .$save_dir : self::ROOT_PATH .date ( 'Y/m/d' );
38
39 //フォルダーを作成します
40 @$this->create_dir ($this->save_dir);
41 // ディレクトリと画像のフルパスを設定 www.2cto.com
42 $this->save_fullpath = $this->save_dir '/' 。 43 }
44 //PHP4対応
45 公開関数画像($save_name) {
46 $this->__construct ($save_name);
47 }
48
49 パブリック関数 stream2Image() {
50 //バイナリデータストリーム
51 $data = file_get_contents ( 'php://input' ) ? file_get_contents ( 'php://input' ) : gzuncompress ( $GLOBALS ['HTTP_RAW_POST_DATA'] );
52 // データ ストリームが空でない場合は、操作を保存します
53 if (! 空 ( $data )) {
54 // データ ストリームを作成して書き込み、ファイルを保存します
55 if (@$fp = fopen ( $this->save_fullpath, 'w+' )) {
56 57 58 $baseurl = "http://" 。 $_SERVER ["SERVER_NAME"] . 「:」。 $_SERVER ["SERVER_PORT"] . dirname ( $_SERVER ["SCRIPT_NAME"] ) 。 '/' 。 $this->save_name;               
 59 if ( $this->getimageInfo ( $baseurl )) {
 60 echo $baseurl;
 61 } else {
 62 echo ( self::NOT_CORRECT_TYPE );
 63 }
 64 } else {
 65
 66 }
 67 } else {
 68 //データストリームへの受信はありません
 69 echo ( self::NO_STREAM_DATA );
 70 }
 71 }
 72 /**
73 * フォルダーを作成します
74 * @param String $dirName フォルダーのパス名
75*/
 76 public function create_dir($dirName, $recursive = 1,$mode=0777) {
 77 ! is_dir ( $dirName ) && mkdir ( $dirName,$mode,$recursive );
 78 }
 79 /**
80 * 画像情報を取得し、画像の幅、高さ、タイプ、サイズ、画像の種類を返します
81 * @param String $imageName 画像名
82*/
 83 public function getimageInfo($imageName = '') {
 84 $imageInfo = getimagesize ( $imageName );
 85 if ($imageInfo !== false) {
 86 $imageType = strto lower ( substr ( image_type_to_extension ( $imageInfo [2] ), 1 ) );
 87 $imageSize = ファイルサイズ ( $imageInfo );
 88 return $info = array ('width' => $imageInfo [0], 'height' => $imageInfo [1], 'type' => $imageType, 'size' => $imageSize, '私のもの' => $imageInfo ['私のもの'] );
 89 } else {
 90 //違法な画像
 91 false を返す;
 92 }
 93
 94 }
 95
 96 /*プライベート関数 error_handler($a, $b) {
 97 エコー $a, $b;
 98 }*/
 99
100 }


 

摘自 myphoebe

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/478298.html技術記事 Php代コード 1 ?php 2 /**3 * 画像カテゴリ 4 * @author Haroldphp@163.com 5 * @バージョン 1.0 6 * 7*/ 8 クラスイメージ { 9 const ROOT_PATH = ./; 10 const FAIL_WRITE_DATA = データの書き込みに失敗しました;...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート