php实现文件上传基本验证

本文实例为大家分享了php实现文件上传基本验证的具体代码,供大家参考,具体内容如下

Html部分

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>文件上传</title>
</head>
<body>
 <form action="doupload.php" method="post" enctype="multipart/form-data">
  <input type="file" name="myFile"/>
  <input type="hidden" name="MAX_FILE_SIZE" value="1024">
  <!-- <input type="hidden" name="MAX_FILE_SIZE" value="1024">通过建立隐藏域来控制文件上传的大小
  在页面上进行判断,value是1024kb,这是客户端上设置的限制,最好是服务器做限制 -->
  <input type="submit" value="上传"/>
 </form>
</body>
</html>

PHP服务端部分

<?php
header("Content-type: text/html; charset=utf-8");
 //预定义变量
 //print_r($_FILES);//可以显示错误号,根据错误号来定位错误信息
 $filename=$_FILES['myFile']['name'];
 $type=$_FILES['myFile']['type'];
 $tmp_name=$_FILES['myFile']['tmp_name'];//存储地址
 $error=$_FILES['myFile']['error'];//错误类型
 $size=$_FILES['myFile']['size'];//文件大小
 $filenamemd5=getUniName($filename);
 // $types="jpg";//只能上传图片
 $limitsize="185000";//控制图片大小
 $a=getExt($filename);
 //$getext=getExt($filename);
  //得到文件的扩展名
 function getExt($filename){
  $first=explode(".",$filename); //文件名开始以.分割
  $ext=strtolower(end($first)); //取出数组中的最后一个数组进行返回
  return $ext;
 }
 //文件名以时间戳微秒md5加密的形式出现,确保文件的唯一
 function getUniName(){
  return md5(microtime(true));
 }
 //echo getUniName(); 返回md5加密的数值

  function gettypes($a){
   $array=array(jpg,png,txt);
  $b=in_array($a,$array);
  return $b;
  }

   if($limitsize>=$size){
    if(gettypes($a)){
    if($error==0){
     if (is_uploaded_file($tmp_name)) {
       //将服务器上的临时文件移动到指定目录
       $filename=$filenamemd5.".".getExt($filename);
       $destination="uploads/".$filename;
       if(move_uploaded_file($tmp_name, $destination)){
        //检测这个临时文件是否为post方式
        //返回镇或者假
       echo $filename."---"."文件上传成功";
     }else{
      echo "你不是post上传的,非法操作";
     }
    }else{
     echo "{$filename}文件移动失败";
    }
    }else{
     switch ($error) {
      case 1:
       echo "超过php配置文件upload_max_filesize的值";
       break;

      case 2:
       echo "超过表单max_file_size的值";
       break;
      case 3:
       echo "部分文件被上传";
       break;
      case 4:
       echo "没有文件被上传";
       break;
      case 6:
      case 7:
       echo "未知错误";
     }
    }
   }else{
    echo "只能上传图片";
   }
  }else{
   echo "超出上传文件大小限制";
  }

 ?>

本文已被整理到了《php文件上传操作汇总》 ,更多精彩内容,欢迎大家学习阅读。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • php使用ereg验证文件上传的方法

    本文实例讲述了php使用ereg验证文件上传的方法.分享给大家供大家参考.具体分析如下: ereg格式如下: 复制代码 代码如下: ereg(正规表达式,字符串,[匹配部分数组名]); 这里利用了ereg来验证用户上传的文件类型与文件名是否是符合文件命名规则,实例代码如下: 复制代码 代码如下: if( !is_uploaded_file($upfile) )  {   echo("你什么都没有上传哦!");   exit();  }  else  {   if( !ereg(&quo

  • PHP实现本地图片上传和验证功能

    今天研究了一下PHP的FILES函数,使用PHP实现本地图片的上传,验证文件是否为图片,并将图片保存在指定目录下,实现游览图片的功能,感觉还是很好玩的,一共有两个PHP页面,一个作为前台的上传和图片展示,另一个用来处理保存图片,代码里做了很详细的注释,并将FILES函数的语法,error报错类型写了出来,还有一些注意事项. FILES函数 1.$_FILES['myFile']['name'] 客户端文件的原名称 2.$_FILES['myFile']['type'] 文件的 MIME类型,需要

  • ThinkPHP实现带验证码的文件上传功能实例

    本文实例讲述了ThinkPHP实现带验证码的文件上传功能.分享给大家供大家参考.具体实现方法如下: ThinkPHP上传文件非常的简单我们只要调用一个文件上传类UploadFile就可以快速的实现上传功能了,下面我来给大家整理了一个上传文件时需要验证功能的例子,希望文章对大家会带来帮助. 在模板中我们只需要调用就可以了 复制代码 代码如下: <html> <head> <title>验证码</title> </head> <body>

  • Node.js开发教程之基于OnceIO框架实现文件上传和验证功能

    OnceIO 是 OnceDoc 企业内容(网盘)的底层Web框架,它可以实现模板文件.静态文件的全缓存,运行起来完全不需要I/O操作,并且支持客户端缓存优化,GZIP压缩等(只在第一次压缩),拥有非常好的性能,为您节约服务器成本.它的模块化功能,可以让你的Web进行分布式存储,即一个扩展包里即包含前端.后端和数据库定义,只需通过添加/删除目录的方式就可实现功能删减,实现真正的模块化扩展.这里是介绍如何使用OnceIO的一系列文章. 在这一章节中,我们将为大家演示如何使用 OnceIO 实现文件

  • php实现文件上传基本验证

    本文实例为大家分享了php实现文件上传基本验证的具体代码,供大家参考,具体内容如下 Html部分 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>文件上传</title> </head> <body> <form action="doupload.php"

  • 表单正则验证及文件上传验证功能

    表单正则验证主要是用来对表单提交信息的过滤,防止sql注入(比如登录界面),上传的文件也需要进行文件名后缀和大小进行验证,下面是一个简单的表单验证 header("Content-type:text/html;charset=utf-8"); $user = isset($_POST['user'])?$_POST['user']:null; $password = isset($_POST['password'])?$_POST['password']:null; $arr = ar

  • Spring学习笔记2之表单数据验证、文件上传实例代码

    在上篇文章给大家介绍了Spring学习笔记1之IOC详解尽量使用注解以及java代码,接下来本文重点给大家介绍Spring学习笔记2之表单数据验证.文件上传实例代码,具体内容,请参考本文吧! 一.表单数据验证 用户注册时,需要填写账号.密码.邮箱以及手机号,均为必填项,并且需要符合一定的格式.比如账号需要32位以内,邮箱必须符合邮箱格式,手机号必须为11位号码等.可以采用在注册时验证信息,或者专门写一个工具类用来验证:来看下在SpringMVC中如何通过简单的注释实现表单数据验证. 在javax

  • AngularJS 文件上传控件 ng-file-upload详解

    网上可以找到的 AngularJS 的文件上传控件有两个: angular-file-upload:https://github.com/nervgh/angular-file-upload ng-file-upload:https://github.com/danialfarid/ng-file-upload 这两个非常类似,连js文件的结构都是一样的.核心的js是.min.js,还都有一个-shim.min.js,用来支持上传进度条和上传暂停等高级功能. 按道理讲shim.js应该是可加可不

  • asp.net fileupload控件上传文件与多文件上传

    1.前台文件 Default.aspx: <%@ Page Language="C#" AutoEventWireup="true"CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.

  • JSP使用Common FileUpload组件实现文件上传及限制上传类型实例代码

    1.将commons-fileupload-1.3.3.jar复制到Web应用的lib文件夹下,在WebRoot目录下创建limit.jsp页面,在该页面中添加一个文件域的表单,设置类型为    multipart/form-data.代码如下: <body> <h2>上传图书课件</h2> <form action="LimitFile" name="one" enctype="multipart/form-da

  • java中struts2实现文件上传下载功能实例解析

    本文实例讲述了java中struts2实现文件上传下载功能实现方法.分享给大家供大家参考.具体分析如下: 1.文件上传 首先是jsp页面的代码 在jsp页面中定义一个上传标签 复制代码 代码如下: <tr>      <td align="right" bgcolor="#F5F8F9"><b>附件:</b></td>      <td bgcolor="#FFFFFF">

  • asp.net中Fine Uploader文件上传组件使用介绍

    最近在处理后台数据时需要实现文件上传.考虑到对浏览器适配上采用Fine Uploader. Fine Uploader 采用ajax方式实现对文件上传.同时在浏览器中直接支持文件拖拽[对浏览器版本有要求类似IE版本必须是9或是更高的IE10].在不同浏览器中提供统一用户体验.该组件基本覆盖目前所有主流浏览器.同时没有任何第三方组件依赖.相当Clear.在服务器端已经覆盖支持了ASP.NET/ColdFusion/Java/Node.js/Perl/PHP/Python. 对上传细节类似限制文件大

随机推荐