php上传文件的增强功能

文件对象的形式,比如$ _files { 'doc},为保存路径的路径,为类型限制上传(他是一个数组,如doc和docx和限制上传格式,那么这个参数可以填充阵列(DOC,.docx),前者不延长号)。
复制代码代码如下所示:
< PHP
函数上载($文件,$路径,$类型){
$ =数组();
{ } =错误的国家美元的真实;
美元= 异型; / /都可以上传类型,与 / 连接
$路径=修剪(路径);
要添加
如果(strlen(strrchr($路径'))< = 1){
$路径。;
}
对于具有开头的类型。
所有类型的合成 字符串,并带有 连接
foreach(美元美元美元关键= >型型){
美元美元美元关键} = {型型=装饰(合型);
如果(strlen(strchr($型,,))!= strlen(合型)){
{ } =关键型美元美元。美元型;} 。
异型型美元美元。= ;
}
异型美元= substr($ 0,异型,strlen(异型美元)- 1); / /删除/结束
如果(空($文件{ 'name' })){
{ } =错误美元的国家没有{美元}型异型文件上传!;
国家'errorid'} {美元= 8;
返回$状态;
{ { { }
如果(!文件错误){ } {
$状态{ 'name' } =文件{ 'name' };
$状态{类型} = strrchr($状态{ 'name' },'。);
如果(in_array($状态{类型},$式)){
时间=日期();
国家'upname} = {美元美元(10009999美元time.rand。状态{类型}); / /文件名
如果(副本(文件{ 'tmp_name},{ 'upname美元$路径。状态' })){
{ } =时间的美元状态日期(U); / /上传时间
{ } =美元的虚假错误状态;
返回$状态;
{人}
开关($文件(错误的)){
案例1:错误的状态{ } =美元美元状态{ 'name' }。上传失败,文件大小超过服务器的空间大小!{ }状态;美元'errorid = 1;返回的状态;
案例2:错误的状态{ } =美元美元状态{ 'name' }。上传失败,上传文件的大小超过浏览器限制!{ }状态;美元'errorid = 2;返回的状态;
案例3:错误的状态{ } =美元美元状态{ 'name' }。上传失败,该文件仅部分上传!{ }状态;美元'errorid = 3;返回的状态;
案例4:错误的状态{ } =美元美元状态{ 'name' }。上传失败,没有要上传的文件!{ }状态;美元'errorid = 4;返回的状态;
案例5:错误的状态{ } =美元美元状态{ 'name' }。上传失败,服务器临时文件夹丢失!{ }状态;美元'errorid = 5;返回的状态;
案例6:错误的状态{ } =美元美元状态{ 'name' }。上传失败,文件写入临时文件夹错误!{ }状态;美元'errorid = 6;返回的状态;
默认状态错误} = {美元美元状态{ 'name' }。上载失败,位置错误!{ }状态;美元'errorid = 10;返回的状态;
}
}
{ { { }
{ } =错误的国家美元美元状态{ 'name' }。上载失败!不符合上传的文件类型!({ $异型});
国家'errorid'} {美元= 10;
返回$状态;
}
}
}
>

返回值是一个数组。
美元价值的关键
错误错误详细信息
errorid错误ID(有错误值得)
类型文件扩展名(扩展前带)
文件名上传的upname
Time upload time (the number of seconds from the beginning of the Unix era (1970-01-01 00:00))

错误类型
errorid误差
错误上传成功
1未能上传,文件的大小超出服务器的大小!
2未能上传,上传的文件大小超过浏览器限制!
3未能上传,文件只部分上传!
4未能上传,未找到要上传的文件!
5上传失败,服务器临时文件夹丢失!
6未能上传,文件写入临时文件夹错误!
8不要上载此类型的文件!对象是空的文件形式。
10上传失败,位置错误!