文章插图
第一步:生成文件上传类
/* 该用于文件上传
* 有4个公有方法可以在对象外部调用:
* __construct()构造方法用于初使化成员属性
* uploadFile()方法用于上传文件
* getNewFileName()方法用于获取上传成功后的文件名称
* getErrorMsg()方法用于上传失败后获取错误提示信息
* 其它属性和方法都被本类封装,不可以在对象外部调用
*/
class FileUpload {
private $filepath; // 上传文件的目的路径
private $allowtype = array(‘jpg’,’gif’,’png’); //充许上传文件的类型,使用小字母
private $maxsize = 1000000; //允许文件上传的最大长度1m
private $israndname = true; //是否随机重命名 false为不随机
private $originName; //源文件名
private $tmpFileName; //临时文件名
private $fileType; //文件类型(文件后缀)
private $fileSize; //文件大小
private $newFileName; //新文件名
private $errorNum = 0; //错误号
private $errorMess=””; //错误报告消息
/* 构造方法:为成员属性初使化
* 参数$options:为一个数组,数组下标为成员员属性名称字符串
* 本类需要初使化的属性有 filepath, allowtype, maxsize,israndname四个属性,其中filepath为必须设置的属性
* 使用的格式为 new FileUpload(array(‘filepath’=>’./uploads’, ‘maxsize’=>10000000)) 的格式
*/
function __construct($options=array()) {
foreach ($options as $key=>$val) {
$key=strtolower($key); //在为成员属性设置值时,不区分大小写
if (!in_array($key,get_class_vars(get_class($this))))
continue;
$this->setOption($key, $val);
}
}
/* 调用该方法上传文件
* 参数: 上传文件的表单名称 例如:<input type=”file” name=”myfile”> 参数则为myfile
* 返回值: 如果上传成功返回数字0,如果上传失败则返回小于0的数,如:-1、-2、-3、-4、-5中的一个
*/
function uploadFile($fileField) {
$return=true;
if(!$this->checkFilePath()) {//检查文件路径
$this->errorMess=$this->getError();
return false;
}
$name=$_FILES[$fileField][‘name’];
$tmp_name=$_FILES[$fileField][‘tmp_name’];
$size=$_FILES[$fileField][‘size’];
$error=$_FILES[$fileField][‘error’];
if(is_Array($name)){ //如果是多个文件上传则$file[“name”]会是一个数组
$errors=array();
for($i = 0; $i < count($name); $i++){
if($this->setFiles($name[$i],$tmp_name[$i],$size[$i],$error[$i] )) {//设置文件信息
if(!$this->checkFileSize() || !$this->checkFileType()){
$errors[]=$this->getError();
$return=false;
}
}else{
$errors[]=$this->getError();
$return=false;
}
if(!$return) // 如果有问题,则重新初使化属性
$this->setFiles();
}
if($return){
$fileNames=array(); //存放所有上传后文件名的变量数组
for($i = 0; $i < count($name); $i++){
if($this->setFiles($name[$i],$tmp_name[$i],$size[$i],$error[$i] )) {//设置文件信息
$this->setNewFileName(); //设置新文件名
if(!$this->copyFile()){
$errors[]=$this->getError();
$return=false;
}
$fileNames[]=$this->newFileName;
}
}
$this->newFileName=$fileNames;
}
$this->errorMess=$errors;
return $return;
} else {
if($this->setFiles($name,$tmp_name,$size,$error)) {//设置文件信息
if($this->checkFileSize() && $this->checkFileType()){
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- 把pdf文件转换成word的方法 pdf 2 word是什么
- 设置按钮无边框的方法 js复选框是否选中
- 万能锁wifi自动解锁方法 免费wifi的软件
- 讲解win7运行文件位置 win7的运行在哪里找
- 辽宁省最穷的三个城市 辽宁穷到什么程度了
- 衣服面料档次从高到低 买衣服最好买什么面料的
- 世界上最接近神的五个人 最接近神的男人
- 16型人格中最可怕的人格 十六型人格配对表
- 32层的电梯楼买房子几楼最好 高楼层选最佳楼层
- 向日葵为什么总是向着太阳 向日葵向着太阳的原因