php 函数封装上传,PHP单文件上传的过程化函数封装

提交文件的页面:

upload.php

文件上传

请选择您要上传的文件:

上传文件的函数 upload.func.php

/**

* Created by PhpStorm.

* User: DreamBoy

* Date: 2016/4/8

* Time: 20:13

*/

//$fileInfo = $_FILES['myFile'];

function uploadFile($fileInfo,$uploadPath = 'uploads',$allowExt=array('jpeg','jpg','png','gif'),$maxSize = 2097152, $flag=true) {

//判断错误号

if($fileInfo['error'] > 0) {

//匹配错误信息

switch($fileInfo['error']) {

case 1:

$mes = '上传文件超过了PHP配置文件中upload_max_filesize选项的值';

break;

case 2:

$mes = '超过了表单MAX_FILE_SIZE限制的大小';

break;

case 3:

$mes = '文件部分被上传';

break;

case 4:

$mes = '没有选择上传文件';

break;

case 6:

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

break;

case 7:

case 8:

$mes = '系统错误';

break;

}

exit($mes);

}

$ext = pathinfo($fileInfo['name'], PATHINFO_EXTENSION);

//$allowExt = array('jpeg', 'jpg', 'png', 'gif');

if(!is_array($allowExt)) {

exit('系统错误');

}

//检测上传文件的类型

if(!in_array($ext, $allowExt)) {

exit('非法文件类型');

}

//$maxSize = 2097152; //2M

//检测上传文件大小是否符合规范

if($fileInfo['size']>$maxSize) {

exit('上传文件过大');

}

//检测图片是否为真实的图片类型

//$flag = true;

if($flag) {

if(!getimagesize($fileInfo['tmp_name'])) {

exit('不是真实图片类型');

}

}

//检测文件是否是通过HTTP POST方式上传上来的

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

exit('文件不是通过HTTP POST方式上传的');

}

//$uploadPath = 'uploads';

if(!file_exists($uploadPath)) {

mkdir($uploadPath, 0777, true);

chmod($uploadPath, 0777);

}

$uniName = md5(uniqid(microtime(true), true)) . '.' . $ext;

$destination = $uploadPath . '/' . $uniName;

if(!@move_uploaded_file($fileInfo['tmp_name'], $destination)) {

exit('文件移动失败');

}

//echo '文件上传成功';

return array(

'newName' => $destination,

'size' => $fileInfo['size'],

'type' => $fileInfo['type'],

);

}

提交表单的处理文件 doAction3.php

/**

* Created by PhpStorm.

* User: DreamBoy

* Date: 2016/4/8

* Time: 20:29

*/

header('content-type:text/html;charset=utf-8');

include_once 'upload.func.php';

$fileInfo = $_FILES['myFile'];

//$file = uploadFile($fileInfo);

//$file = uploadFile($fileInfo, 'MyFiles');

$allowExt = array('jpeg', 'jpg', 'png', 'gif', 'html', 'txt');

$file = uploadFile($fileInfo, 'MyFiles', false, $allowExt);

print_r($file);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值