php中upload函数,PHP中封装上传文件函数

/*

*文件上传

*

*

*/

//var_dump($_FILES);

/* 多文件上传处理

$data = $_FILES['icon'];

$name = $data['name'];

if (is_array($name)) {

for ($i=0; $i

echo $data['tmp_name'][$i].'
';

}

} else {

echo '单个文件上传';

}

*/

$mimes = ['image/jpeg','image/png','image/gif'];

$suffixs = ['jpg','jpeg','pjpeg','png','gif'];

//var_dump(upload('icon',$mimes,$suffixs,'upload',true));

function upload($key,$mimes,$suffixs,$path=null,$rand_name=false)

{

$data = $_FILES[$key];

if ($error = $data['error']) {

switch ($error) {

case UPLOAD_ERR_INI_SIZE:

$msg = '超过了upload_max_filesize的值';

break;

case UPLOAD_ERR_FORM_SIZE:

$msg = '超过了表单中MAX_FILE_SIZE的值';

break;

case UPLOAD_ERR_PARTIAL:

$msg = '部分文件上传';

break;

case UPLOAD_ERR_NO_FILE:

$msg = '没有文件上传';

break;

case UPLOAD_ERR_NO_TMP_DIR:

$msg = '没有找到临时目录';

break;

case UPLOAD_ERR_CANT_WRITE:

$msg = '文件写入失败';

break;

}

return ['error'=>$error,'msg'=>$msg];

} else if ($data['size'] > pow(1024,2)*2) {

$msg = '文件超过自定义的大小2M';

return ['error'=>0,'msg'=>$msg];

}

if (!in_array($data['type'],$mimes)) {

$msg = '不支持的MIME';

return ['error'=>0,'msg'=>$msg];

}

$suffix = pathinfo($data['name'])['extension'];

if (!in_array($suffix, $suffixs)) {

$msg = '不支持的后缀名';

return ['error'=>0,'msg'=>$msg];

}

if (!is_uploaded_file($data['tmp_name'])) {

$msg = '不是上传文件';

return ['error'=>0,'msg'=>$msg];

}

if ($path) {

$path = rtrim($path,'/\\') . '/';

} else {

$path = './';

}

$path .= date('Y/m/d') . '/';

if (!file_exists($path)) {

mkdir($path, 0777, true);

}

if ($rand_name) {

$name = uniqid(). '.' . $suffix;

} else {

$name = $data['name'];

}

$pathname = $path . $name;

if (move_uploaded_file($data['tmp_name'],$pathname)) {

return ['error'=>200,'msg'=>$pathname];

} else {

$msg = '上传失败';

return ['error'=>0,'msg'=>$msg];

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值