php实现文件上传基本验证


Posted in PHP onMarch 04, 2020

本文实例为大家分享了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文件上传操作汇总》 ,更多精彩内容,欢迎大家学习阅读。

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

PHP 相关文章推荐
php array_flip() 删除数组重复元素
Jan 14 PHP
解析php addslashes()与addclashes()函数的区别和比较
Jun 24 PHP
四种php中webservice实现的简单架构方法及实例
Feb 03 PHP
PHP 魔术变量和魔术函数详解
Feb 25 PHP
PHP使用适合阅读的格式显示文件大小的方法
Mar 05 PHP
启用Csrf后POST数据时出现的400错误
Jul 05 PHP
PHP开发中AJAX技术的简单应用
Dec 11 PHP
yii用户注册表单验证实例
Dec 26 PHP
php实现贪吃蛇小游戏
Jul 26 PHP
php实现的简单数据库操作Model类
Nov 16 PHP
PHP搭建大文件切割分块上传功能示例
Jan 04 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
Nov 14 PHP
PHP实现文件上传操作和封装
Mar 04 #PHP
PHP实现文件上传后台处理脚本
Mar 04 #PHP
php 使用html5 XHR2实现上传文件与进度显示功能示例
Mar 03 #PHP
php+ajax实现文件切割上传功能示例
Mar 03 #PHP
php 输出缓冲 Output Control用法实例详解
Mar 03 #PHP
PHP 加密 Password Hashing API基础知识点
Mar 02 #PHP
thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
Mar 02 #PHP
You might like
php自动获取字符串编码函数mb_detect_encoding
2011/05/31 PHP
PHP程序员基本要求和必备技能
2014/05/09 PHP
初识php MVC
2014/09/10 PHP
利用php-cli和任务计划实现刷新token功能的方法
2017/05/03 PHP
PHP实现上传多图即时显示与即时删除的方法
2017/05/09 PHP
js几个不错的函数 $$()
2006/10/09 Javascript
JQuery中form验证出错信息的查看方法
2013/10/08 Javascript
jQuery满意度星级评价插件特效代码分享
2015/08/19 Javascript
JS实现适合于后台使用的动画折叠菜单效果
2015/09/21 Javascript
js命名空间写法示例
2015/12/18 Javascript
详解Angular路由 ng-route和ui-router的区别
2017/05/22 Javascript
认识less和webstrom的less配置方法
2017/08/02 Javascript
基于Vue实现后台系统权限控制的示例代码
2017/08/29 Javascript
微信小程序tabBar用法实例详解
2017/12/04 Javascript
Django+Vue实现WebSocket连接的示例代码
2019/05/28 Javascript
Python实现在线程里运行scrapy的方法
2015/04/07 Python
flask框架实现连接sqlite3数据库的方法分析
2018/07/16 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
2018/10/22 Python
Python生成rsa密钥对操作示例
2019/04/26 Python
Python自动抢红包教程详解
2019/06/11 Python
python设置环境变量的作用和实例
2019/07/09 Python
python 梯度法求解函数极值的实例
2019/07/10 Python
Python递归函数 二分查找算法实现解析
2019/08/12 Python
关于Pytorch的MNIST数据集的预处理详解
2020/01/10 Python
python脚本和网页有何区别
2020/07/02 Python
python之pygame模块实现飞机大战完整代码
2020/11/29 Python
详解Python 中的 defaultdict 数据类型
2021/02/22 Python
HashMap和Hashtable的区别
2013/05/18 面试题
2014两会学习心得:榜样精神伴我行
2014/03/17 职场文书
2014个人反腐倡廉思想汇报
2014/09/15 职场文书
企业党员个人自我评价
2014/09/20 职场文书
退休党员个人对照检查材料思想汇报
2014/09/29 职场文书
开学第一天的感想
2015/08/10 职场文书
企业内部管理控制:银行存款控制制度范本
2020/01/10 职场文书
如何使用JavaScript策略模式校验表单
2021/04/29 Javascript
python使用torch随机初始化参数
2022/03/22 Python