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 相关文章推荐
Discuz!5的PHP代码高亮显示插件(黑暗中的舞者更新)
Jan 29 PHP
PHP的explode和implode的使用说明
Jul 17 PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
Sep 29 PHP
php提示Warning:mysql_fetch_array() expects的解决方法
Dec 16 PHP
php中 ob_start等函数截取标准输出的方法
Jun 22 PHP
php常量详细解析
Oct 27 PHP
总结PHP中数值计算的注意事项
Aug 14 PHP
thinkphp实现把数据库中的列的值存到下拉框中的方法
Jan 20 PHP
PHP解决中文乱码
Apr 28 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
Mar 02 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
May 23 PHP
PHP实现获取文件mime类型多种方法解析
May 28 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+javascript的日历控件
2009/11/19 PHP
PHP 将逗号、空格、回车分隔的字符串转换为数组的函数
2012/06/07 PHP
php中数组首字符过滤功能代码
2012/07/31 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
2012/08/14 PHP
Yii2 如何在modules中添加验证码的方法
2017/06/19 PHP
PHP中模糊查询并关联三个select框
2017/06/19 PHP
详谈symfony window下的安装 安装时候出现的问题以及解决方法
2017/09/28 PHP
workerman结合laravel开发在线聊天应用的示例代码
2018/10/30 PHP
PHP+mysql实现的三级联动菜单功能示例
2019/02/15 PHP
php二维数组按某个键值排序的实例讲解
2019/02/15 PHP
JQuery处理json与ajax返回JSON实例代码
2014/01/03 Javascript
jQuery中[attribute]选择器用法实例
2014/12/31 Javascript
jQuery下拉美化搜索表单效果代码分享
2015/08/25 Javascript
Angularjs使用过滤器完成排序功能
2017/09/20 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
2017/09/21 Javascript
mui js控制开关状态、修改switch开关的值方法
2019/09/03 Javascript
python统计一个文本中重复行数的方法
2014/11/19 Python
python调用fortran模块
2016/04/08 Python
基于python 字符编码的理解
2017/09/02 Python
python实现加密的方式总结
2020/01/19 Python
VScode连接远程服务器上的jupyter notebook的实现
2020/04/23 Python
python 邮件检测工具mmpi的使用
2021/01/04 Python
python用700行代码实现http客户端
2021/01/14 Python
各大浏览器 CSS3 和 HTML5 兼容速查表 图文
2010/04/01 HTML / CSS
菲律宾酒店预订网站:Hotels.com菲律宾
2017/07/12 全球购物
高尔夫球鞋、服装、手套和装备:FootJoy
2018/12/15 全球购物
Dr.Jart+美国官网:韩国药妆品牌
2019/01/18 全球购物
新领导上任欢迎词
2014/01/13 职场文书
总经理助理工作职责
2014/02/06 职场文书
万年牢教学反思
2014/02/15 职场文书
外语系毕业生求职自荐信
2014/04/12 职场文书
副职竞争上岗演讲稿
2014/05/12 职场文书
应聘会计求职信
2014/06/11 职场文书
2014年高中生自我评价范文
2014/09/26 职场文书
MySQL 服务和数据库管理
2021/11/11 MySQL
nginx容器方式反向代理实战
2022/04/18 Servers