自己写的上传类,请大大们有空帮我看看,谢谢!
时间:2010-09-20
来源:互联网
自己写的一个简单上传类,感觉功能实现比较简单,对面向对象的理解还是比较吃力。
麻烦大大们有空帮我看看,帮我找找哪些可以改进的,谢谢!
复制代码
麻烦大大们有空帮我看看,帮我找找哪些可以改进的,谢谢!
- <?php
- /////////////////////////////////////////////////////////////////////////////
- // Framework
- //
- // Copyright (c) 2010 xiaoGao
- //
- /////////////////////////////////////////////////////////////////////////////
-
- /**
- * 定义 MyUpload 对象
- *
- * MyUpload 实现了一个简单的、可扩展的文件上传助手
- *
- * @package File
- * @version $Id:001 2010-09-07 21:07:53 xiaoGao $
- * @charset utf-8
- */
-
-
- /**
- *
- * 使用方法:
- *
- * <code>
- * //导入上传类
- * include('upload.php');
- * //实例化一个对象
- * $Upload = new MyUpload();
- *
- * //上传配置,可改可不改
- * //配置允许的后缀
- * $Upload->_allExt = array('gif','png','jpg');
- * //配置文件上传的路径
- * $Upload->_filePath = 'D:/php/htdocs/my/';
- *
- * //简单上传,file就是input框的name,$name获得新文件的名字,不带路径的
- * $name = $Upload->Upload('file');
- * </code>
- *
-
- */
- class MyUpload
- {
- /**
- * 所要上传的文件名,即input框的name
- *
- * @public string
- */
- public $_file;
-
- /**
- * 所要上传的文件名
- *
- * @public string
- */
- public $_fileName;
-
- /**
- * 所要上传的文件大小
- *
- * @public int
- */
- public $_fileSize;
-
- /**
- * 所要上传的临时文件名
- *
- * @public string
- */
- public $_fileTmp;
-
- /**
- * 上传后文件的命名
- *
- * @public string 不路径的
- *
- */
- public $_newName;
-
- /**
- * 允许上传的扩展名
- *
- * @public array
- */
- public $_allExt = array('gif', 'png', 'jpg', 'flv', 'swf');
-
- /**
- * 允许上传的文件大小
- *
- * @public int 默认为2M
- */
- public $_allSize = 2097152;
-
- /**
- * 文件上传的路径
- *
- * @public string 默认为当前页的upload文件夹
- */
- public $_filePath = 'D:/php/htdocs/my/upload/';
-
- /**
- * 上传函数
- *
- * @param input_file_name
- *
- * @return FileUpload
- */
- public function Upload($inputName)
- {
- $this->_file = $inputName;
- $this->_fileName = $this->getName();
- $this->_fileTmp = $this->getTmp();
- $this->_fileSize = $this->getSize();
- $this->_newName = $this->makeName();
- //检查上传路径
- if(!$this->checkPath())
- {
- //没有该路径,尝试创建
- if($this->makeDir())
- {
- echo "<script>alert('Don't Path;Create success!);</script>";
- } else {
- echo "<script>alert('Don't Path;Create false!');</script>";
- exit(0);
- }
- }
-
- //检查文件后缀
- if(!$this->checkExt())
- {
- echo "<script>alert('Error!The file`s Ext is not allow!');</script>";
- exit(0);
- }
-
- //检查文件大小
- if(!$this->checkSize())
- {
- echo "<script>alert('Error!The file is to big!');</script>";
- exit(0);
- }
-
- //移动文件
- if($this->move())
- {
- echo "<script>alert('File Upload Ok!');</script>";
- return $this->_newName;
- } else {
- echo "<script>alert('Error!File move false!');</script>";
- exit(0);
- }
- }
-
- /**
- * 检查上传路径是否存在
- *
- * @param filePath
- *
- * @return bool
- */
- public function checkPath()
- {
- if(is_dir($this->_filePath))
- {
- return true;
- } else {
- return false;
- }
- }
-
- /**
- * 尝试创建该目录
- *
- * @param filePath
- *
- * @return string filePath
- */
- public function makeDir()
- {
- if(mkdir($this->_filePath))
- {
- return true;
- } else {
- return false;
- }
- }
-
- /**
- * 返回该文件的名称
- *
- * @param fileName
- *
- * @return string fileName
- */
- public function getName()
- {
- return $_FILES[$this->_file]['name'];
- }
-
- /**
- * 返回该文件的临时名称
- *
- * @param fileName
- *
- * @return string fileName
- */
- public function getTmp()
- {
- return $_FILES[$this->_file]['tmp_name'];
- }
-
- /**
- * 获得该文件的大小
- *
- * @param fileName
- *
- * @return int fileSize
- */
- public function getSize()
- {
- return $_FILES[$this->_file]['size'];
- }
-
- /**
- * 生成唯一的文件名
- *
- * @param fileName
- *
- * @return string fileName
- */
- public function makeName()
- {
- $id = md5(time().$this->getName().rand(0,10));
- $Name = $id.'.'.$this->getExt($this->getName());
- return $Name;
- }
-
- /**
- * 返回该文件不带.的小写后缀
- *
- * @param fileName
- *
- * @return string file_ext
- */
- public function getExt($fileName)
- {
- //获得后缀,最后一个出现的‘.’
- $ext = trim(substr($fileName, strrpos($fileName, '.')), '.');
- //将后缀转化为小写字母
- $ext = strtolower($ext);
- return $ext;
- }
-
- /**
- * 检查该文件的后缀是否符合设定
- *
- * @param fileName
- *
- * @return bool
- */
- public function checkExt()
- {
- $ext = $this->getExt($this->_fileName);
- if(in_array($ext, $this->_allExt))
- {
- return 1;
- } else {
- return 0;
- }
- }
-
- /**
- * 检查文件的大小
- *
- * @param fileName
- *
- * @return bool
- */
- public function checkSize()
- {
- if($this->_fileSize <= $this->_allSize)
- {
- return 1;
- } else {
- return 0;
- }
- }
-
- /**
- * 移动文件
- *
- * @param fileName
- *
- * @return bool
- */
- public function move()
- {
- if(move_uploaded_file($this->_fileTmp, $this->_filePath.$this->_newName))
- {
- return 1;
- } else {
- return 0;
- }
- }
- }
- ?>
作者: woshigaocailong 发布时间: 2010-09-20

作者: woshigaocailong 发布时间: 2010-09-20
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28