- 浏览: 1876939 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
wangyudong:
Wisdom RESTClient工具地址更新了哦https: ...
前端模拟POST发送数据-Chrome下的REST Client(接口测试利器) -
wangyudong:
很多REST Client是不支持自动化测试RESTful A ...
前端模拟POST发送数据-Chrome下的REST Client(接口测试利器) -
higkoo:
一个非常棒的系统,要是能支持LDAP等开源认证就完美了。
Cynthia 是个问题管理/BUG管理/任务管理/项目管理系统。 -
寻光之旅:
标签库使用有啥好处呢?
thinkphp 使用标签库的步骤 -
lgdjy123:
Android:TextView属性大全
<?php //$array=array('path'=>'d:/','allowsize'=>4000000); //$t=new upload($array); class upload{ //路径 private $path='./'; //文件准许的MIME类型 private $allowmime=array('image/jpeg','image/jpg','image/gif','image/pjpeg','image/png','image/x-png','image/wbmp'); //文件准许的后缀 private $allowsub=array('jpg','jpeg','gif','png','bmp'); //文件准许的大小 private $allowsize=2000000; //文件的错误号 private $errorNum; //文件的错误信息 private $errorInfo; //文件的原名 private $orgname; //文件的新名 private $newname; //是否启用随机文件名 private $israndname=true; //文件的大小 private $size; //文件的后缀 private $subfix; //文件的前缀 private $prefix='up_'; //文件类型 private $type; //临时文件路径 private $tmpname; //构造方法初使化成员属性 public function __construct($array=array()){ foreach($array as $key=>$value){ $key=strtolower($key); if(!array_key_exists($key,get_class_vars(get_class($this)))){ continue; } $this->setOption($key,$value); } } public function setOption($key,$value){ $this->$key=$value; } public function up($field){ //检测路径是否正确 if(!$this->checkPath()){ return false; } //把传进来的值都赋值给临时变量 $name=$_FILES[$field]['name']; $size=$_FILES[$field]['size']; $tmpname=$_FILES[$field]['tmp_name']; $error=$_FILES[$field]['error']; $type=$_FILES[$field]['type']; //把传进来的参数交给setFiles来设置一批信息 if($this->setFiles($name,$size,$tmpname,$error,$type)){ //判断大小,判断MIME,判断后缀 if($this->checkSize()&&$this->checkMime()&&$this->checkSub()){ $this->newname=$this->randname(); echo 11111111111; if($this->move()){ return $this->newname; }else{ return false; } }else{ return false; } //是否启用随机文件名 // //移动文件 }else{ return false; } } private function move(){ if(is_uploaded_file($this->tmpname)){ $this->path=$this->path.$this->newname; if(move_uploaded_file($this->tmpname,$this->path)){ return true; }else{ $this->setOption('errorNum',-7); return false; } }else{ $this->setOption('errorNum',-6); return false; } } private function randname(){ if($this->israndname){ return $this->prefix.$this->createNewName(); }else{ return $this->prefix.$this->orgname; } } private function createNewName(){ return uniqid().'.'.$this->subfix; } private function checkSub(){ if(in_array($this->subfix,$this->allowsub)){ return true; }else{ $this->setOption('errorNum',-5); return false; } } private function checkMime(){ if(in_array($this->type,$this->allowmime)){ return true; }else{ $this->setOption('errorNum',-4); return false; } } private function checkSize(){ if($this->size>$this->allowsize){ $this->setOption('errorNum',-3); return false; }else{ return true; } } private function setFiles($name,$size,$tmpname,$error,$type){ if(!empty($error)){ $this->setOption('errorNum',$error); return false; } $this->orgname=$name; $this->size=$size; $this->tmpname=$tmpname; $this->type=$type; $arr=explode('.',$name); $this->subfix=array_pop($arr); //$this->subfix=$arr[count($arr)-1]; return true; } public function checkPath(){ if(empty($this->path)){ $this->setOption('errorNum',-1); //$this->errorNum=-1 return false; }else{ $this->path=rtrim($this->path,'/').'/'; if(file_exists($this->path)&&is_writeable($this->path)){ return true; }else{ if(mkdir($this->path,0777,true)){ return true; }else{ $this->setOption('errorNum',-2); return false; } } } } private function getErrorNum(){ switch($this->errorNum){ case -1: $str='文件路径不存在'; break; case -2: $str='文件夹创建失败'; break; case -3: $str='文件大小超出了手动指定的大小'; break; case -4: $str='文件类型不准许'; break; case -5: $str='文件后缀不准许'; break; case -6: $str='文件不是上传文件'; break; case -7: $str='文件移动失败'; break; case 1: $str='文件大小超过了php.ini当中设置maxsize准许的值'; break; case 2: $str='超过了表单当中设置的最准许的最大值'; break; case 3: $str='只有部份文件被上传'; break; case 4: $str='没有文件被上传'; break; case 6: $str='找不到临时文件夹'; break; case 7: $str='临时文件写入失败'; break; } return $str; } public function __get($proName){ if($proName=='errorInfo'){ return $this->getErrorNum(); } } } $t=new upload(); ?>
发表评论
-
Lumen写事件
2018-02-10 10:46 7971.在事件里面定义事件 <?php /** * ... -
PHP设计模式之状态机模式-实现业务流控制
2018-01-28 11:16 1805应用场景:在我们日常开发中经常会遇到各种状态的切换,例如电 ... -
装wampserver时显示计算机丢失MSVCR110.dll
2017-03-07 10:15 1205http://www.microsoft.com/zh-CN ... -
phpdocument的使用
2016-10-25 16:24 623官网: https://www.phpdoc.org/ ... -
微信调试方法
2016-05-24 09:25 7881. 在本地搭建类似LAMP的环境(或者WAMP)都行,目的 ... -
创建自己的composer包
2015-12-10 17:01 990创建一个composer/packagist包 在g ... -
微信nickname乱码及mysql编码格式设置(utf8mb4)
2015-12-08 12:24 1727将数据库的编码设置为utf8mb4_general_ci ... -
docker php 配置
2015-10-28 18:10 1117FROM php:5.6-fpm MAINTAINER S ... -
四种数据存储结构---顺序存储 链接存储 索引存储 散列存储
2015-08-15 21:54 1527存储结构分四类:顺序存储、链接存储、索引存储 和 散列存储。 ... -
分享PHP代码检查经验
2015-08-09 23:03 1609问: 团队十多人开发, 如何保证代码规范统一? http ... -
php过滤只匹配中英文字符串
2015-08-04 15:26 1906<?php $str = "php $ ... -
移除emoji内容
2015-08-04 14:52 1244public static function removeE ... -
php 敏感词过滤高级版
2015-08-04 10:20 1492前面介绍过一个过滤了 ... -
php过滤广告内容(兼职,QQ号,淘宝兼职,网址)
2015-08-04 10:17 1180如果你网站有评论那么你肯定会发现你网站经常会被一人注入广告了 ... -
写第一个PHP扩展, 实现计算数组的个数
2015-07-20 19:09 1354需求: 写第一个PHP扩展, 里面包含一个函数叫 maxw ... -
PHP常用设计模式单例, 工厂, 观察者, 责任链, 装饰, 策略,适配,桥接模式
2015-07-15 11:08 1657// 多态, 在JAVA中是这样用的, 其实在PHP当中可 ... -
php命令行界面
2015-07-16 17:03 976常用选项 php -v php -i ... -
使用phpdocument
2015-07-14 17:05 885pear install phpdoc phpDocumen ... -
将session存储到数据库中
2015-07-14 15:33 826CREATE TABLE sessions ( id ... -
正则表达式向前查找向后查找,环绕或零宽断言
2015-07-14 12:40 2414向前查找和向后查找 1. 向前查找:根据要匹配的字符序列后 ...
相关推荐
为了简化这个过程,开发者通常会编写一个专门的文件上传类,以实现对上传过程的全面控制和错误处理。以下是对"PHP文件上传类"的详细解析: 1. **类的结构**: - 一个PHP文件上传类通常包含一系列的方法,如`upload...
很简单的php单文件上传类,自个写着玩的. 实现两步上传文件.
然而,在实际项目中,我们通常会创建一个自定义的PHP文件上传类,以实现更灵活、更安全的文件上传管理。 这个"php文件上传类"应该具备以下关键功能和特性: 1. **设置上传限制**:首先,类应允许开发者定义上传...
三、实现强大的PHP文件上传类 一个简单的示例类可能包含以下方法: 1. `validateFile()`:验证文件大小、类型等。 2. `renameFile()`:生成唯一的文件名。 3. `moveFile()`:将文件从临时位置移动到目标位置。 4. ...
本资源提供了一个PHP图片上传类,旨在简化这一过程并处理与之相关的各种问题。下面将详细介绍这个PHP图片上传类及其可能涉及的知识点。 1. **文件上传基础知识** PHP中的文件上传主要依赖于`$_FILES`全局数组,它...
PHP实现文件上传PHP实现文件上传PHP实现文件上传PHP实现文件上传PHP实现文件上传PHP实现文件上传PHP实现文件上传PHP实现文件上传PHP实现文件上传PHP实现文件上传PHP实现文件上传PHP实现文件上传PHP实现文件上传PHP...
以上就是一个使用PHP和APC扩展实现大文件上传带进度条的基本流程。通过这种方法,我们可以避免一次性加载大文件,分块上传降低了服务器内存压力,同时也提供了良好的用户体验,用户可以看到文件上传的实时进度。需要...
本篇文章将深入探讨如何使用PHP实现一个批量上传类,以及相关的关键知识点。 首先,我们要理解批量上传的基本概念。批量上传是指允许用户一次选择多个文件进行上传,而不是逐个选择。这大大提高了用户的效率,尤其...
2. **封装PHP上传类**:`upload_class.php`是这个封装类的核心。它通常会包含一系列用于验证、移动上传文件的方法,如检查文件类型、大小限制,以及将临时文件移动到指定目录。封装类的好处在于代码复用,提高开发...
"php多文件上传类.zip" 提供了一个专为处理这种需求设计的类库,它允许用户同时上传多个文件,提高了工作效率,简化了代码实现。下面将详细介绍这个多文件上传类的主要功能和使用方法。 1. **类库简介** 这个多...
本文实例讲述了PHP实现通过CURL上传文件功能。分享给大家供大家参考,具体如下: PHP使用CURL上传文件只需发送一个POST请求就可以了,在请求中设置某个字段为需要上传的文件全路径,并且以”@”开头,然后使用CURL把...
### PHP实现多文件上传类详解 #### 一、概述 在Web开发中,文件上传是一项常见功能,尤其在用户需要提交图片、文档等资源时。本文档将详细解析一个基于PHP的经典多文件上传类——`myFrame_Upload`。该类不仅支持...
**二、处理PHP上传** 在服务器端,我们需要一个PHP脚本来接收并处理上传的文件。以下是一个基本的PHP文件上传处理示例: ```php <?php if(isset($_FILES['userfile']) && $_FILES['userfile']['error'] === UPLOAD...
9. **源码结构**:一个良好的PHP上传类应该遵循良好的编程实践,如封装、面向对象编程(OOP),使用类和方法组织代码,以及适当的注释。 10. **类设计**:类可能包含初始化方法(构造函数)用于设置默认参数,如上...
本文介绍了一个PHP实现的多文件上传类,这个类封装了多文件上传的相关操作,简化了多文件上传的处理流程。 #### 文件上传的实现机制 文件上传通过HTML表单中的`<input type="file">`元素来实现。当用户选择文件后,...
在PHP中实现多文件上传是一项常见的任务,尤其在开发web应用程序时。这个功能允许用户一次选择并上传多个文件,如图片、文档等。以下是对如何实现这一功能的详细讲解: 一、HTML表单设计 首先,你需要在HTML页面中...
这个"PHP文件上传类"就是这样一个工具,它对PHP的文件上传功能进行了封装,使得开发者只需简单设置参数即可实现文件上传。 1. **文件上传基础** - PHP中的文件上传是通过`$_FILES`全局数组来处理的,它包含了关于...
在给定的代码中,定义了一个名为`Upload`的类,这个类专门用于实现多文件上传并支持生成缩略图的功能。以下是这个类中包含的关键知识点: 1. **变量定义**:`Upload`类中定义了若干属性来存储上传过程中的关键信息...
这个PHP上传类的主要功能包括: 1. **错误处理**:类中包含了对各种可能的上传错误进行检查和处理的机制,例如文件过大、文件类型不符等。这使得开发者可以更好地控制上传流程,避免因错误导致的程序中断。 2. **...
这个"比较全面的php文件上传类"是一个专门处理文件上传的工具,它封装了相关操作,提供了更方便、安全的方式来处理文件上传过程。下面将详细讲解这个类库的核心知识点及其在实际开发中的应用。 首先,类库的设计...