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 相关文章推荐
dede3.1分页文字采集过滤规则详说(图文教程)续四
Apr 03 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
Aug 14 PHP
深入解析php之apc
May 15 PHP
PHP中的str_repeat函数在JavaScript中的实现
Sep 16 PHP
php旋转图片90度的方法
Nov 07 PHP
php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
Apr 05 PHP
php读取3389的脚本
May 06 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
Sep 22 PHP
php通过正则表达式记取数据来读取xml的方法
Mar 09 PHP
php实现SAE上使用storage上传与下载文件的方法
Jun 29 PHP
php使用ffmpeg向视频中添加文字字幕的实现方法
May 23 PHP
Thinkphp整合微信支付功能
Dec 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用反撇号执行外部命令
2015/04/14 PHP
基于PHP给大家讲解防刷票的一些技巧
2015/11/18 PHP
html+javascript实现可拖动可提交的弹出层对话框效果
2013/08/05 Javascript
浅析js中的浮点型运算问题
2014/01/06 Javascript
关于编写性能高效的javascript事件的技术
2014/11/28 Javascript
JavaScript调用传递变量参数的相关问题及解决办法
2015/11/01 Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
2016/01/08 Javascript
jquery实现简单Tab切换菜单效果
2020/07/17 Javascript
最全的Javascript编码规范(推荐)
2016/06/22 Javascript
JS获取一个未知DIV高度的方法
2016/08/09 Javascript
获取jqGrid中选择的行的数据
2016/11/30 Javascript
快速入门Vue
2016/12/19 Javascript
nodejs 最新版安装npm 的使用详解
2018/01/18 NodeJs
angular json对象push到数组中的方法
2018/02/27 Javascript
解决Mac安装thrift因bison报错的问题
2018/05/17 Javascript
vue自定义tap指令及tap事件的实现
2018/09/18 Javascript
微信小程序版本自动更新的方法
2019/06/14 Javascript
vue iview多张图片大图预览、缩放翻转
2019/07/13 Javascript
vue+koa2实现session、token登陆状态验证的示例
2019/08/30 Javascript
JS面试题中深拷贝的实现讲解
2020/05/07 Javascript
Python写的PHPMyAdmin暴力破解工具代码
2014/08/06 Python
Python输出9*9乘法表的方法
2015/05/25 Python
Python实现批量修改文件名实例
2015/07/08 Python
举例简单讲解Python中的数据存储模块shelve的用法
2016/03/03 Python
Python实现脚本锁功能(同时只能执行一个脚本)
2017/05/10 Python
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
2018/12/02 Python
Python 实现敏感目录扫描的示例代码
2020/05/21 Python
代理协议书范本
2014/04/22 职场文书
广播体操比赛口号
2014/06/10 职场文书
植树节标语
2014/06/27 职场文书
授权委托书(公民个人适用)
2014/09/19 职场文书
汽车转让协议书范本
2014/12/07 职场文书
酒店开业主持词
2015/07/02 职场文书
董事长年会致辞
2015/07/29 职场文书
微信小程序用户授权最佳实践指南
2021/05/08 Javascript
PostgreSQL逻辑复制解密原理解析
2022/09/23 PostgreSQL