java 调用php文件上传_php上传文件分类实例代码

/**

* 文件上传类

* @author lijiamin

* @time 2017-02-17

* @email 1195989301@qq.com

*/

class Upload{

private $allowExt = array('gif','jpg','jpeg','bmp','png','swf');//限制文件上传的后缀名

private $maxSize = 1;//限制最大文件上传1M

/**

* 获取文件的信息

* @param str $flag 上传文件的标识

* @return arr 上传文件的信息数组

*/

public function getInfo($flag){

return $_FILES[$flag];

}

/**

* 获取文件的后缀

* @param str $filename 文件名

* @return str 文件扩展名

*/

public function getExt($filename){

return pathinfo($filename,PATHINFO_EXTENSION);

}

/**

* 检测上传文件是否合法

* @param str $filename 文件名

* @return bool 文件扩展名是否合法

*/

private function checkExt($filename){

$ext = $this->getExt($filename);

return in_array($ext,$this->allowExt);

}

/**

* 检测文件大小是否超过限制

* @param int size 文件大小

* @return bool 文件大小是否超过限制

*/

public function checkSize($size){

return $size < $this->maxSize * 1024 * 1024;

}

/**

* 随机的文件名

* @param int $len 随机文件名的长度

* @return str 随机字符串

*/

public function randName($len=6){

return substr(str_shuffle('abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ234565789'),0,$len);

}

/**

* 创建文件上传到的路径

* @return str 文件上传的路径

*/

public function createDir(){

//上传文件路径

$dir = './upload/'.date('Y/m/d',time());

//判断文件夹是否存在,不存在则新建

if(is_dir($dir) || mkdir($dir,0777,true)){

return $dir;

}

}

/**

* 文件上传

* @param str $flag 文件上传标识

* @return array 返回上传文件名、保存路径

*/

public function uploadFile($flag){

if($_FILES[$flag]['name'] === '' || $_FILES[$flag]['error'] !== 0){

echo "没有上传文件";

return;

}

$info = $this->getInfo($flag);

if(!$this->checkExt($info['name'])){

echo "不支持的文件类型";

return;

}

if(!$this->checkSize($info['size'])){

echo "文件大小超过限制";

return;

}

$filename = $this->randName().'.'.$this->getExt($info['name']);

$dir = $this->createDir();

if(!move_uploaded_file($info['tmp_name'], $dir.'/'.$filename)){

echo "文件上传失败";

}else{

return array('filename'=>$filename,'dir'=>$dir);

}

}

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值