<?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. DataList无数据如何显示

    <FooterTemplate> <asp:Label runat="server" ID="emptyLb" Text="No D ...

  2. Ajax读取txt并对txt内容进行分页显示

    function TransferString(content) { var string = content; try{ string=string.replace(/\r\n/g,"&l ...

  3. Ext JS 4 老特征:statics 静态的变量和方法

    l   一.静态的变量和静态的方法 [译文原创Learning Ext JS 4 第51页] Statics的方法只属于类本身,而不属于任何一个实例,这就决定了我们是在定义类的内部来用statics方 ...

  4. VM虚拟主机怎么设置网络

    VMware是很受欢迎的虚拟机,在我们平时的工作中需要经常用到,此文简单总结了平时使用的三种网络配置方式,具体的原理没有去深究.我估计咱也研究不懂! 虚拟主机安装很简单,网上教程有很多,但是有很多新手 ...

  5. 记AppStore 被打回的经历

    在快驰已然有半年时间之久. 见证了“快货运”产品,在不断摧残的环境中成长着.  两个人,将一个产品亲手从无到有的构建,有过心酸.有过累和有过憔悴,但当“快货运”开始上APP store时,又让人觉得开 ...

  6. 关于HttpURLConnection.setFollowRedirects

    public static void HttpURLConnection.setFollowRedirects(boolean followRedirects)public void HttpURLC ...

  7. 解决protobuf不能直接在IOS上使用,利用protobuf-net在IOS上通讯

    ---------------------------------------------------------------------------------------------------- ...

  8. SWFUpload - JQuery上传插件

    首先,大家可以去SWF的官网下载相关Demo或者源码. 官方地址:http://code.google.com/p/swfupload/ 官方Demo:http://demo.swfupload.or ...

  9. jdk安装及环境变量配置

    JDK是 Java 语言的软件开发工具包,主要用于移动设备.嵌入式设备上的java应用程序.JDK是整个java开发的核心,它包含了JAVA的运行环境,JAVA工具和JAVA基础的类库. jdk下载地 ...

  10. 370. Range Addition

    Assume you have an array of length n initialized with all 0's and are given k update operations. Eac ...