<?php
$fileinfo=$_FILES["myfile"];
function uploadfile($fileinfo,$allowext=array('jpeg','jpg','pnd','gif','wbmp'),$flag=true,$maxsize=2097152){
//判断错误信息
if($fileinfo['error']>0)
{
switch($fileinfo['error'])
{
case 1:
$mes= "上传文件超过了PHP配置文件中upload_max_filesize选项的值";
break;
case 2:
$mes= "超过了表单MAX_FILE_SIZE的限制大小";
break;
case 3:
$mes= "文件部分被上传";
break;
case 4:
$mes= "没有选择上传文件";
break;
case 6:
$mes= "没有找到临时目录";
break;
case 7:
case 8:
$mes= "系统错误";
break; }
exit($mes); } //判断上传文件类型是不是在规定类型中
$allowext=array('jpeg','jpg','pnd','gif','wbmp'); //定义一下允许的上传文件类型
$ext=strtolower(end(explode(',',$fileinfo['name'])));//截取上传文件扩展名
if(!in_array($ext,$allowext)) // 判断上传文件的扩展名是不是在定义类型中
{
exit('非法文件类型');
} //判断上传文件大小
$maxsize=2097152; //写最大的字节数,自己算
if($fileinfo['size']>$maxsize)
{
exit('上传文件过大');
} //判断文件是否是通过HTTP POST方式上传上来的
if(!is_uploaded_file($fileinfo['tmp_name']))
{
exit('文件不是通过HTTP POST方式上传上来的');
} //检测是否为真实的图片类型,而不是认为改动的
$flag=true;
if($flag)
{
if(!getimagesize($fileinfo['tmp_name']))
{
echo "不是真实的图片类型";
}
} //判断服务器上存储的文件夹在不在
$path='uploads'; //服务器上存储文件的文件名
if(!file_exists($path))
{
mkdir($path,0777,true);//不存在就创建一个目录
chmod($path,0777);//加一个权限 }
$uniname=md5(uniqid(microtime(true),true)).'.'.$ext; //通过MD5加密等措施给文件名取名,产生唯一文件名 $destination=$path.'/'.$uniname;
if(!move_uploaded_file($fileinfo['tmp_name'],$destination)) //上传文件
{
echo "文件上传失败";
} return array( 'newname'=>$destination,
'size'=>$fileinfo['size'],
'type'=>$fileinfo['type'] ); }

php部分---单文件上传的封装类的更多相关文章

  1. ASP.NET MVC5+EF6+EasyUI 后台管理系统(56)-插件---单文件上传与easyui使用fancybox

    系列目录 https://yunpan.cn/cZVeSJ33XSHKZ  访问密码 0fc2 今天整合lightbox插件Fancybox1.3.4,发现1.3.4版本太老了.而目前easyui 1 ...

  2. asp.net.mvc 的单文件上传和多文件上传的简单例子

    首先打开vs2012,创建空的mvc4项目,名称为MVCStudy,选择基本模板

  3. php文件上传之单文件上传

    为了简单一些,php文件跟form表单写在了一个文件里. php单文件上传----> <!DOCTYPE html> <html> <head> <me ...

  4. Struts2实现单文件上传

    首先配置一下web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi ...

  5. SpringMVC单文件上传、多文件上传、文件列表显示、文件下载(转)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细讲解了SpringMVC实例单文件上传.多文件上传.文件列表显示.文件下载. 本文工程 ...

  6. yii2.0单文件上传和多文件上传

    yii2文件上传使用到yii2自带的文件上传类UploadFIle,以及对应的模型规则,这里分别介绍单文件上传和多文件上传: yii2单个文件上传: 上传步奏,先创建上传表单模型model(包含验证规 ...

  7. Struts2单文件上传原理及示例

    一.文件上传的原理 表单元素的enctype属性指定的是表单数据的编码方式,该属性有3个值: 1.application/x-www-form-urlencoded:这是默认编码方式,它只处理表单域里 ...

  8. [转]SpringMVC单文件上传、多文件上传、文件列表显示、文件下载

    一.新建一个Web工程,导入相关的包 springmvc的包+commons-fileupload.jar+connom-io.jar+commons-logging,jar+jstl.jar+sta ...

  9. 【Struts2学习笔记(9)】单文件上传和多文件上传

    (1)单文件上传 第一步:在WEB-INF/lib下增加commons-fileupload-1.2.1.jar.commons-io-1.3.2.jar. 这两个文件能够从http://common ...

随机推荐

  1. CodeForces 474B E(Contest #1)

    题意: 给你一个数n,代表n段区间,接下来有n个数(a1,a2,...an)代表每段区间的长度,第一段区间为[1,a1],第二段区间为[a1+1,a1+a2],...第i段区间为[ai-1+1,ai- ...

  2. php 常用数组操作

    php常用的数组操作函数,包括数组的赋值.拆分.合并.计算.添加.删除.查询.判断.排序等 array_combine 功能:用一个数组的值作为新数组的键名,另一个数组的值作为新数组的值 <?p ...

  3. linux命令每日一练习 wc more

    wc该命令统计文件行数,字数或者字节数 wc -l 统计行数 wc -w 统计字数 wc -c 统计字节数 more 显示文件内容,类似于cat more +n 从第n行开始显示 more -n 限定 ...

  4. windows下python Tkinner环境布置(包含PIL环境安装)

    布置步骤:1.安装python 2.7.11 安装步骤:由于网上存在有相关经验,所以在此引用一下 http://jingyan.baidu.com/article/0bc808fc42dfab1bd4 ...

  5. 例子:Bluetooth app to device sample

    本例子演示了: 判断蓝牙是否打开,是通过一个HRsult值为0x8007048F的异常来判断的 catch (Exception ex) { if ((uint)ex.HResult == 0x800 ...

  6. yum源的搭建

    1.光盘的挂载 2.先创建一个文件 /aaa 然后挂载mount /dev/cdrom /aaa 进入 /aaa   ls 查看是否挂载OK 3.进入yum文件夹.将除Media以外的所有文件名改为X ...

  7. The Nine Indispensable Rules for HW/SW Debugging 软硬件调试之9条军规

    I read this book in the weekend, and decided to put the book on my nightstand. It's a short and funn ...

  8. SparkStreaming运行出现 java.lang.NoClassDefFoundError: org/apache/htrace/Trace 错误

    1.简介 最近在摸索利用sparkstreaming从kafka中准实时的读取数据,并将在读取的过程中,可以做一个简单的分析,最后将分析结果写入hbase中. 2.出现的问题 (1)将从kafka中读 ...

  9. iOS7下隐藏status bar的详细研究

    info.plist文件中,View controller-based status bar appearance项设为YES,则View controller对status bar的设置优先级高于a ...

  10. final修饰的变量是引用不能改变,还是引用的对象不能改变???

    对于这个问题,我们不能只记结论,要拿实例说话,参看以下代码: public class Demo { public static void main(String[] args) { final St ...