2014-09-05
Php代码
1 <?php
2 /**
3 * 图片类
4 * @author Haroldphp@163.com
5 * @version 1.0
6 *
7 */
8 class image {
9 const ROOT_PATH = './';
10 const FAIL_WRITE_DATA = 'Fail to write data';
11 //没有数据流
12 const NO_STREAM_DATA = 'The post data is empty';
13 //图片类型不正确
14 const NOT_CORRECT_TYPE = 'Not a correct image type';
15 //不能创建文件
16 const CAN_NOT_CREATE_FILE = 'Can not create file';
17 //上传图片名称
18 public $image_name;
19 //图片保存名称
20 public $save_name;
21 //图片保存路径
22 public $save_dir;
23 //目录+图片完整路径
24 public $save_fullpath;
25
26 /**
27 * 构造函数
28 * @param String $save_name 保存图片名称
29 * @param String $save_dir 保存路径名称
30 */
31 public function __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.zhishiwu.com
42 $this->save_fullpath = $this->save_dir . '/' . $this->save_name;
43 }
44 //兼容PHP4
45 public function image($save_name) {
46 $this->__construct ( $save_name );
47 }
48
49 public function stream2Image() {
50 //二进制数据流
51 $data = file_get_contents ( 'php://input' ) ? file_get_contents ( 'php://input' ) : gzuncompress ( $GLOBALS ['HTTP_RAW_POST_DATA'] );
52 //数据流不为空,则进行保存操作
53 if (! empty ( $data )) {
54 //创建并写入数据流,然后保存文件
55 if (@$fp = fopen ( $this->save_fullpath, 'w+' )) {
56 fwrite ( $fp, $data );
57 fclose ( $fp );
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 * 获取图片信息,返回图片的宽、高、类型、大小、图片mine类型
81 * @param String $imageName 图片名称
82 */
83 public function getimageInfo($imageName = '') {
84 $imageInfo = getimagesize ( $imageName );
85 if ($imageInfo !== false) {
86 $imageType = strtolower ( substr ( image_type_to_extension ( $imageInfo [2] ), 1 ) );
87 $imageSize = filesize ( $imageInfo );
88 return $info = array ('width' => $imageInfo [0], 'height' => $imageInfo [1], 'type' => $imageType, 'size' => $imageSize, 'mine' => $imageInfo ['mine'] );
89 } else {
90 //不是合法的图片
91 return false;
92 }
93
94 }
95
96 /*private function error_handler($a, $b) {
97 echo $a, $b;
98 }*/
99
100 }
1
CI框架连接数据库配置操作以及多数据库操作
09-05
2
asp 简单读取数据表并列出来 ASP如何快速从数据库读取大量数据
05-17
3
C语言关键字及其解释介绍 C语言32个关键字详解
04-05
4
C语言中sizeof是什么意思 c语言里sizeof怎样用法详解
04-26
5
PHP中的魔术方法 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep,
09-05
6
将视频设置为Android手机开机动画的教程
12-11
7
PHP中的(++i)前缀自增 和 (i++)后缀自增
09-05
8
常用dos命令及语法
09-27
PHP中include和require区别之我见
2014-09-05
最简单的asp登陆界面代码 asp登陆界面源代码详细介绍
2017-04-12
php递归返回值的问题
2014-09-05
如何安装PHPstorm并配置方法教程 phpstorm安装后要进行哪些配置
2017-05-03
单片机编程好学吗?单片机初学者怎样看懂代码
2022-03-21
PHP 教程之如何使用BLOB存取图片信息实例
2014-09-05
零基础的初学者怎样学习java,或者应该先学什么?
2022-03-21
学ug编程如何快速入门?
2022-03-17
PHP数组函数array
2014-09-05
学习使用C语言/C++编程的7个步骤!超赞~
2022-03-20
球球大作战汉化版下载v19.7.1 安卓版
其它手游 170.54MB
下载
葫芦侠三楼最新破解版下载v4.4.0.6 安卓版
其它手游 34.82MB
下载
葫芦侠7楼破解版免费下载v4.4.0.6安卓最新版
其它手游 34.82MB
下载
葫芦侠八楼免费版下载v4.4.0.6安卓版
其它手游 34.82MB
下载
葫芦侠3楼破解版免费下载v4.4.0.6安卓手机版
其它手游 34.82MB
下载
像素漫斗抱歉,“八神庵”是特指游戏角色的专有名词,不存在符合要求的常用同义词近义词。下载v1.00安卓版
其它手游 206.87MB
下载
葫芦侠4楼破解版游戏修改器下载v4.4.0.6安卓免费版
其它手游 34.82MB
下载
末日餐厅安卓版下载v1.35安卓版
其它手游 73.98MB
下载葫芦侠十楼免费破解版下载v4.4.0.6安卓版
下载
葫芦侠8楼最新破解版下载v4.4.0.6安卓版
下载
猫娘乐园世界连结正版下载v1.9.1 安卓版
下载
像素漫斗全员下载v1.00安卓版
下载
葫芦侠8楼手机版下载v4.4.0.6安卓版
下载
末日餐厅正版官网入口下载v1.35安卓版
下载
我的汉克狗正版下载v26.4.1.48473 安卓版
下载
像素漫斗u鼬神最新版本下载v1.00安卓版
下载