封装upload文件上传类
<?php
//封装php中的单文件(图片)上传类
/*
//参数1:$file 文件数组 5个属性值 name,type,size,tmp,error
//参数2:文件保存的路径$path
//参数3:文件上传允许的类型 $allow数组 $allow=array('image/jpeg','image/jpg','image/png','image/gif')
//参数4: 允许文件上传的最大大小 $size
//返回值: return $imageName文件的名字
*/
header('content-type:text/html;charset=utf-8');
class Upload{
//定义一个属性,专门保存错误信息
public static $error;
//文件转移的方法
public function uploadFile($file,$size,$path){
if(!is_dir($path)){
$this->mkPath($path);
}
$allow=array('image/jpeg','image/jpg','image/png','image/gif');
//首先判断文件是否已上传到临时目录
if(!is_array($file)){
Upload::$error='不是一个有效的文件';
return false;
}
//判断文件是否上传到临时目录成功
switch($file['error']){
case 1:
Upload::$error='上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。';
return false;
case 2:
Upload::$error='上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。';
return false;
case 3:
Upload::$error='文件只有部分被上传';
return false;
case 4:
Upload::$error='没有文件被上传';
return false;
case 6:
Upload::$error='找不到临时文件夹';
return false;
case 7:
Upload::$error='文件写入失败';
return false;
}
//判断文件类型是否是图片
if(!in_array($file['type'],$allow)){
Upload::$error='不是要求的文件类型';
return false;
}
//判断文件的大小是否在允许的范围内
if($file['size']>$size){
Upload::$error='超出允许最大文件大小';
return false;
}
//文件转移
if(move_uploaded_file($file['tmp_name'],$path.'/'.$this->getName($file))){
return $file['name'];
}else{
return Upload::$error;
}
}
//创建目录的方法
private function mkPath($path){
mkdir($path);
}
//文件重命名
private function getName($file){
return time().$file['name'];
}
}
封装upload文件上传类的更多相关文章
- 自定义MVC框架之工具类-文件上传类
截止目前已经改造了3个类: ubuntu:通过封装验证码类库一步步安装php的gd扩展 自定义MVC框架之工具类-分页类的封装 该文件上传类功能如下: 1,允许定制上传的文件类型,文件mime信息,文 ...
- Php文件上传类class.upload.php
简介 Class.upload.php是用于管理上传文件的php文件上传类, 它可以帮助你快速的给自己的网站集成上传文件功能.不仅如此,此分类还有一些列的处理功能,可以对上传的文件或者本地的文件进行处 ...
- PHP 之文件上传类封装
一.前端代码 <!doctype html> <html lang="en"> <head> <meta charset="UT ...
- THINKPHP源码学习--------文件上传类
TP图片上传类的理解 在做自己项目上传图片的时候一直都有用到TP的上传图片类,所以要进入源码探索一下. 文件目录:./THinkPHP/Library/Think/Upload.class.php n ...
- ASP.NET 文件上传类 简单好用
调用: UploadFile uf = new UploadFile(); /*可选参数*/ uf.SetIsUseOldFileName(true);//是否使用原始文件名作为新文件的文件名(默认: ...
- PHP 文件上传类
FileUpload.; $]; $_newname = date(,). : To ...
- php 文件上传类 实例分享
最近在研究php上传的内容,找到一个不错的php上传类,分享下. <?php /** * 文件上传类 * class: uploadFile * edit: www.jbxue.com */ c ...
- ThinkPHP文件上传类
TP框架自带文件上传类使用: 类文件在ThinkPHP/Library/Think/默认在目录下 public function upload(){ $upload = new \Think\Uplo ...
- php 文件上传类,功能相当齐全,留作开发中备用吧。
收藏一个经典好用的php 文件上传类,功能相当齐全,留作开发中备用吧. 好东西,大家都喜欢,才是真的好,哈哈!!! <?php /** * 文件上传类 */ class upload ...
随机推荐
- 用angularJS实现Bootstrap的“手风琴”
主页面代码(发现Bootstrap官网上手风琴的实例样式有问题,在这里依然使用3.0.~版本) <!DOCTYPE html> <html ng-app="ct" ...
- 20145211 《Java程序设计》实验报告一:Java开发环境的熟悉(Windows+IDEA)
实验要求 使用JDK编译.运行简单的Java程序: 使用IDEA 编辑.编译.运行.调试Java程序. 实验内容 命令行下Java程序开发 IDEA下Java程序开发.调试 练习(通过命令行和IDEA ...
- 1046 A^B Mod C
1046 A^B Mod C 基准时间限制:1 秒 空间限制:131072 KB 给出3个正整数A B C,求A^B Mod C. 例如,3 5 8,3^5 Mod 8 = 3. Input 3个正整 ...
- [LeetCode]题解(python):047-Permutations II
题目来源 https://leetcode.com/problems/permutations-ii/ Given a collection of numbers that might contain ...
- 昂贵的聘礼---poj1062(最短路)
题目链接:http://poj.org/problem?id=1062 题意很清楚: 可以虚拟一个起点0,由于存在等级关系,所以可以枚举等级,然后把各种关系建立边,然后计算0到1的距离即可,去最小值即 ...
- angularJs:双向数据绑定
示例1 <!DOCTYPE html> <html ng-app> <head> <meta charset="UTF-8" /> ...
- linux matlab2013b 安装教程
链接:http://pan.baidu.com/s/1pJE6R2b 密码:shfy 1. 解压缩“Mathworks Matlab R2013b Linux.rar”(无需密码),得到“Mathwo ...
- 个人常用iOS第三方库以及XCode插件介绍
第三方库 CocoaPod CocoaPod并不是iOS上的第三方库 而是大名鼎鼎的第三方库的管理工具 在CocoaPod没有出现之前 第三方库的管理是非常痛苦的 尤其是一些大型的库(比如nimbus ...
- iOS系统自带正则表达式简单运用
//组装一个字符串,把里面的网址解析出来 NSString *urlString = @"sfdshttp://www.baidu.com"; NSError *error; // ...
- iOS:抽屉侧滑动画两种形式(1、UIView侧滑 2、ViewController侧滑)
前言: 在iOS中抽屉动画是很常用的一种技术,使用它有很炫的体验效果,为app增添特色,形式就两种,一个是UIView的侧滑,另一个就是ViewController的侧滑. 实现方式: 抽屉侧滑动画有 ...