PHP群:95885625 Hbuilder+MUI群:81989597 站长QQ:634381967
|
积分获取
|
给我留言
|
tag标签
首页
开发编程
PHP教程
ASP.NET教程
Jquery教程
Unity3D教程
JavaScript教程
HTML+CSS
ThinkPhp教程
Smarty教程
正则表达式
编程杂谈
HTML5+CSS3教程
HBuilderX教程
AngularJS教程
Laravel教程
iOS开发教程
Java教程
小程序开发
提供网页设计教程和后台编程技术
CMS教程
phpcms教程
dedecms教程
wordpress教程
ecshop教程
帝国cms教程
discuz教程
齐博cms教程
ShopNc教程
提供主流cms教程
数据库
MySQL教程
SQL Server教程
NoSql数据库
提供数据库教程和设计
JS特效
HTML5+CSS3特效
焦点图
菜单导航
广告特效
对联广告
在线客服
相册特效
图片特效
悬浮漂浮
滚动特效
Tab选项卡
瀑布流
手机js特效
弹出层(框)
日期时间
网页模板
其它特效
提供各种常见网页js代码
网页特效
HTML5+CSS3
鼠标特效
文字特效
导航菜单
表格图层
Tab选项卡
图片特效
时间日期
网站常用
提供常用的JS特效代码及在线演示
Jquery插件
jQuery日期时间
jQuery弹出层
jQuery筛选排序
jQuery滚动插件
jQuery工具提示
jQuery音频视频
jQuery选项卡
jQuery图片裁剪
jQuery常用插件
jQuery导航菜单
提供jQuery插件教程及插件下载
服务器
Linux教程
Web服务器
提供服务器常见问题及教程
站长学院
seo技巧
建站经验
网络营销
站长资讯
好文分享
网络推广
互联网资讯
提供站长技术、站长资讯等内容
工具&手册
Base64编码加密
正则测试工具
Css压缩/格式化
jQuery手册
md5加密
CSS3
帝国cms开发手册
DEDE5.7使用手册
配色词典
C语言库
提供常用开发手册和开发工具
全站搜索
搜索
关键字:
滑动
隔行换色
图片放大
js代码特效
文件上传
图片轮播
竖着
插入节点
您现在的位置:
首页
>
开发编程
>
PHP教程
> 正文
php文件上传类
作者:admin
来源:
B5教程网
浏览:
次
时间:2020-09-30 00:07:50
我要评论
导读:php文件上传类,总结分享给大家。
复制代码
代码如下:
<
?
PHP
/**
* Uploader
*
* @package my
* @author php100.com
* @copyright 2010
* @version $Id$
* @access public
*/
class Uploader
{
public
$
files
=
array
(
)
;
private
$
errors
=
array
(
)
;
private
$
file_names
=
array
(
)
;
private
$
directory
=
NULL
;
private
$
uploaded
=
false
;
# uploaded file name
public
$
uploaded_files
=
array
(
)
;
private
$
file_new_name
=
NULL
;
private
$
results
=
NULL
;
/**
* set directory attribute
*
* @param mixed $directory
* @return
*/
function directory
(
$
directory
)
{
if
(
!
is_dir
(
$
directory
)
)
{
$
this
-
>
errors
[
]
=
$
directory
.
' not a directory'
;
}
if
(
!
is_writable
(
$
directory
)
)
{
$
this
-
>
errors
[
]
=
$
directory
.
' unwritable'
;
}
$
this
-
>
directory
=
$
directory
;
}
/**
* set files attribute
*
* @param mixed $files
* @return
*/
function files
(
$
files
)
{
if
(
empty
(
$
files
)
)
{
throw new Exception
(
'file array is empty'
)
;
}
if
(
!
is_array
(
$
files
[
'tmp_name'
]
)
)
{
$
this
-
>
files
[
'tmp_name'
]
[
]
=
$
files
[
'tmp_name'
]
;
$
this
-
>
files
[
'name'
]
[
]
=
$
files
[
'name'
]
;
$
this
-
>
files
[
'type'
]
[
]
=
$
files
[
'type'
]
;
$
this
-
>
files
[
'size'
]
[
]
=
$
files
[
'size'
]
;
}
else
{
for
(
$
i
=
0
;
$
i
<
count
(
$
files
[
'name'
]
)
;
$
i
+
+
)
{
if
(
$
files
[
'name'
]
[
$
i
]
)
{
$
this
-
>
files
[
'tmp_name'
]
[
]
=
$
files
[
'tmp_name'
]
[
$
i
]
;
$
this
-
>
files
[
'name'
]
[
]
=
$
files
[
'name'
]
[
$
i
]
;
$
this
-
>
files
[
'type'
]
[
]
=
$
files
[
'type'
]
[
$
i
]
;
$
this
-
>
files
[
'size'
]
[
]
=
$
files
[
'size'
]
[
$
i
]
;
}
}
}
}
/**
* Uploader::bad_character_rewrite()
*
* @param mixed $text
* @return
*/
private function bad_character_rewrite
(
$
text
)
{
$
first
=
array
(
"\\"
,
"/"
,
":"
,
";"
,
"~"
,
"|"
,
"("
,
")"
,
"\"
", "
#", "*", "$", "@", "%", "[", "]", "{", "}", "<", ">", "`", "'", ",", " ", "臒", "臑", "眉", "脺", "艧", "艦", "谋", "陌", "枚", "脰", "莽", "脟");
$
last
=
array
(
"_"
,
"_"
,
"_"
,
"_"
,
"_"
,
"_"
,
""
,
"_"
,
"_"
,
"_"
,
"_"
,
"_"
,
"_"
,
"_"
,
"_"
,
"_"
,
"_"
,
"_"
,
"_"
,
"_"
,
"_"
,
""
,
"_"
,
"_"
,
"g"
,
"G"
,
"u"
,
"U"
,
"s"
,
"S"
,
"i"
,
"I"
,
"o"
,
"O"
,
"c"
,
"C"
)
;
$
text_rewrite
=
str_replace
(
$
first
,
$
last
,
$
text
)
;
return
$
text_rewrite
;
}
/**
* get file extension
*
* @param mixed $file_name
* @return
*/
public function file_extension
(
$
file_name
)
{
$
file_extension
=
strtolower
(
substr
(
strrchr
(
$
file_name
,
'.'
)
,
1
)
)
;
return
$
file_extension
;
}
private function file_name
(
$
file
)
{
return strtolower
(
substr
(
$
file
,
0
,
strpos
(
$
file
,
'.'
)
)
)
;
}
/**
* create random file name
*
* @param mixed $file_name no used
* @return
*/
private function _file_name_control
(
$
file_name
)
{
if
(
file_exists
(
$
this
-
>
directory
.
'/'
.
$
file_name
)
)
{
//return $this->file_name($file_name).strtolower(rand() % 1000000).'.'.$this->file_extension($file_name);
return strtolower
(
rand
(
)
% 1000000
)
.
'_'
.
$
file_name
;
}
else
return
$
file_name
;
}
/**
* Uploader::_begin_upload()
*
* @param mixed $extensions
* @return void
*/
function _begin_upload
(
$
extensions
)
{
if
(
!
count
(
$
this
-
>
errors
)
)
{
for
(
$
i
=
0
;
$
i
<
count
(
$
this
-
>
files
[
'tmp_name'
]
)
;
$
i
+
+
)
{
if
(
in_array
(
$
this
-
>
file_extension
(
$
this
-
>
files
[
'name'
]
[
$
i
]
)
,
$
extensions
)
)
{
$
this
-
>
file_new_name
=
$
this
-
>
_file_name_control
(
$
this
-
>
files
[
'name'
]
[
$
i
]
)
;
move_uploaded_file
(
$
this
-
>
files
[
'tmp_name'
]
[
$
i
]
,
$
this
-
>
directory
.
'/'
.
$
this
-
>
file_new_name
)
;
$
this
-
>
uploaded_files
[
]
=
$
this
-
>
file_new_name
;
$
this
-
>
results
.
=
'
'
.
$
this
-
>
files
[
'name'
]
[
$
i
]
.
'
change name to
'
.
$
this
-
>
file_new_name
.
'
, file size
(~'
.
round
(
$
this
-
>
files
[
'size'
]
[
$
i
]
/
1024
,
2
)
.
' kb).
'
;
}
else
{
$
this
-
>
results
.
=
'
'
.
$
this
-
>
files
[
'name'
]
[
$
i
]
.
' no access type
'
;
}
}
$
this
-
>
uploaded
=
true
;
}
else
{
foreach
(
$
this
-
>
errors as
$
error
)
{
throw new Exception
(
$
error
)
;
}
}
}
/**
* print report
*
* @return
*/
function result_report
(
)
{
if
(
$
this
-
>
uploaded
=
=
true
)
{
echo
'
'
;
echo
$
this
-
>
results
;
echo '
'
;
}
}
/**
* Uploader::upload()
*
* @param mixed $files
* @param mixed $directory
* @param mixed $extensions
* @return
*/
function upload
(
$
files
,
$
directory
,
$
extensions
=
array
(
'jpg'
,
'jpeg'
,
'png'
,
'gif'
)
)
{
$
this
-
>
directory
(
$
directory
)
;
$
this
-
>
files
(
$
files
)
;
$
this
-
>
_begin_upload
(
$
extensions
)
;
}
}
转载请注明(B5教程网)原文链接:
https://b5.mxunkeji.com/content-10-183-1.html
相关热词搜索:
文件上传
分享按钮
上一篇:
php生成图片缩略图类或者说任意缩放图片
下一篇:
用PHP嗅探youku视频的真实地址!
延伸阅读
·
PHP文件上传主要代码讲解
·
PHP.INI配置:文件上传功能配置教程
·
高效的批量处理PHP中的文件上传,图片处理、批量添加代码
·
php文件上传之php.ini配置上传文件详解
·
php 的文件上传类并可创建文件夹
最新推荐
[
PHP教程
]
PHP判断一个请求是AJAX请求
[
PHP教程
]
call_user_func函数和call_u
[
鼠标特效
]
鼠标滑过图层或图片时,显示
[
鼠标特效
]
用Javascript和canvas实现的
[
图片特效
]
炫酷自适应布局的jquery+css
[
图片特效
]
图片无间隙向上滚动插件js代
[
图片特效
]
jquery风景网站首页banner带
[
图片特效
]
简单的jquery图片列表瀑布流
[
图片特效
]
炫酷的JS+DHTML立体图片展示
[
SQL Server教程
]
如何写出高性能SQL语句
本周排行
异常消息:The Process class relies on proc_open, which is not available on your PHP installation
PHP7如何添加redis扩展?
php连接数据库报错"Fatal error: Call to a member function query() on a non-object in"的原因
session与cookie的联系和区别(运行机制),session共享问题解决方案
上传保存大的文件时,错误:The "" file does not exist or is not readable.
php教程过滤所有html标签的几种方法
php base64保存成图片显示一半的问题
php json函数json_decode用法
php防止sql注入的方法解析
php中把相对路径转化成绝对路径函数分享
关于我们
关于我们
赞助我们
加入我们
版权声明
联系我们
联系我们
QQ技术群
合作方式
广告服务
业务合作
常见问题
意见反馈
网站地图
在线投稿
积分获取
在线充值
本站不承担任何版权问题,如果我们侵犯了您的利益,请来信
告知(634381967@qq.com),我们会在第一时间处理!
© 苏ICP备20040182号
B5教程网 版权所有