php文件上传类完整实例
作者:潇湘竹叶 发布时间:2023-11-22 04:32:28
标签:php,文件上传类
本文实例讲述了php文件上传类。分享给大家供大家参考,具体如下:
/**
$file=new class_file($file_array,"flash/");
$file->set_allow_type(array("jpg","jpeg","gif"));
$file->is_limit_size();
if(!$file->allow_file_size()){
echo $file->error;
exit;
}
if(!$file->allow_file_type()){
echo $file->error;
exit();
}else if(!$file->uploadfile()){
echo $file->error;
exit;
}
**/
<?php
class class_file{
private $file_type;
private $file_size;
private $save_path;
private $file_path;
private $allow_type=array();
private $allow_size;
private $file_name;
private $flag=false;
private $mime_type;
private $is_limit_size=false;
public $error;
//构造函数
function class_file($file_array,$save_path){
$this->file_path=$file_array['tmp_name'];
$this->file_size=$file_array['size'];
$this->file_type=$file_array['type'];
$this->save_path=$save_path;
}
//设置允许的文件类型
function set_allow_type($allow_type){
$this->allow_type=$allow_type;
}
//设置允许的文件大小
function set_allow_size($allow_size){
$this->allow_size=$allow_size;
}
//文件上传
public function uploadfile(){
if(!$this->allow_file_type()){
$this->file_name();
}
if(move_uploaded_file($this->file_path,$this->save_path.$this->file_name)){
return true;
}else{
$this->error="文件上传失败";
return;
}
}
//判断文件上传的类型
function allow_file_type(){
$this->file_name();
if(in_array($this->mime_type,$this->allow_type)){
return true;
}else{
$this->error="不允许上传的类型";
exit();
}
}
//判断文件上传的大小
function allow_file_size($size=100){
if($this->is_limit_size){
$this->set_allow_size($size);
if($this->allow_size>=$this->file_size){
return true;
}else{
$this->error="超过文件上传大小限制";
}
}
}
//是否限制文件大小
function is_limit_size(){
$this->is_limit_size=true;
}
//文件类型和文件名称
function file_name(){
$this->mime_type=substr($this->file_type,strpos($this->file_type,"/")+1);
if($this->mime_type=="pjpeg"){
$this->mime_type="jpg";
}
if($this->mime_type=="x-ms-wma"){
$this->mime_type="wma";
}
if($this->mime_type=="x-ms-wmv"){
$this->mime_type="wmv";
}
$this->file_name=date("YmdHis").".$this->mime_type";
}
function _get_file_name(){
return $this->file_name;
}
}
?>
希望本文所述对大家PHP程序设计有所帮助。


猜你喜欢
- 本机中原pyinstaller版本为3.5版本,本打算通过 pip install --upgrade pyinstaller进行升级,竟然
- 一、变量声明变量go定义变量的方式和c,c++,java语法不一样,如下:var 变量名 类型, 比如 : var a intvar在前,变
- 本文实例讲述了PHP接口多继承及tarits实现多继承效果的方法。分享给大家供大家参考,具体如下:接口多继承在PHP的面向对象中,接口可以继
- TFTP文件传输功能:1、获取文件列表2、上传文件3、下载文件4、退出第一部分,TftpServer部分。①导入相关模块from socke
- 使用Pycharm的时候需要导入解释器然后安装一些第三方库,讲道理都是project Interpreter里面直接install的。但是打
- 在 InnoDB中更加快速的全表扫描 一般来讲,大多数应用查询的时候都会用索引,查找很少的几行数据(主键查找或百行内的
- CacheControl 属性设置是否可缓存由 ASP 生成的输出。默认地,代理服务器不会保持缓存副本。语法:response.CacheC
- 由于惯性思维,导致使用for循环修改列表中的值出现问题首次尝试:def make_great(original): for magician
- 1、get方法请求接口url:显而易见,就是接口的地址url啦headers:请求头,例如:content-type = applicati
- QQ影音新版发布官网Banner经过两周的酝酿、脑爆与设计调整,于20日顺利上线,连续7天,经历了昨天激动人心的最后发布,到此告一段落,这里
- 效果图动画代码这里 只提供图中购物车动画代码,不提供以上点餐界面(需要点餐界面 点击这里:Gitee仓库)。在触发代码中使用 this.ca
- 一、InnoDB的表级锁在绝大多数情况下应该使用行锁,因为事务和行锁往往是选择InnoDB的理由,但个别情况下也使用表级锁。事务需要更新大部
- Mysql 设置boolean类型1.tinyint类型我们创建test表,并设置其bl字段为boolean类型create table t
- 在odoo中,通过iframe嵌入 html,页面数据则通过controllers获取,使用jinja2模板传值渲染html页面分页内容,这
- 一、文章前言此文主要通过小程序实现对比人脸相似度,并返回相似度分值,可以基于分值判断是否为同一人。人脸登录、用户认证等场景都可以用到。二、具
- 客户/服务器体系结构图形化的用户界面,使系统的管理更加直观和简单。丰富的编程接口,为用户进行应用程序设计提供了更大的选择余地。与Window
- 我就废话不多说了,大家还是直接看代码吧~func ReadLine(fileName string) ([]string,error){f,
- 前面讲述了"专题一.函数的基础知识",而这篇文章讲述的Python的条件语句和循环语句的基础知识.主要内容包括:1.条件
- 为了防止采集,我试过各种方法,绝大多数方法是“ * 剑”---防止了采集,也影响了搜索引擎收录,实在不爽!一天本人忽发奇想:何不
- 本文实例为大家分享了微信小程序实现电影App导航和轮播的具体代码,供大家参考,具体内容如下最终的目的:底部:我们要搞好这样的底部要在app.