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与javascript对多项选择的处理
Oct 09 PHP
中英文字符串翻转函数
Dec 09 PHP
php 计算两个时间戳相隔的时间的函数(小时)
Dec 18 PHP
PHP学习之输出字符串(echo,print,printf,print_r和var_dump)
Apr 17 PHP
php设计模式 Decorator(装饰模式)
Jun 26 PHP
调整优化您的LAMP应用程序的5种简单方法
Jun 26 PHP
php程序的国际化实现方法(利用gettext)
Aug 14 PHP
PHP输入流php://input介绍
Sep 18 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
Jul 25 PHP
MyEclipse常用配置图文教程
Sep 11 PHP
PHP中4种常用的抓取网络数据方法
Jun 04 PHP
PHP时间相关常用函数用法示例
Jun 03 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
附件名前加网站名
2008/03/23 PHP
PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
2013/06/18 PHP
PHP汉字转换拼音的函数代码
2015/12/30 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
使用js完成节点的增删改复制等的操作
2014/01/02 Javascript
jQuery将多条数据插入模态框的示例代码
2014/09/25 Javascript
jQuery结合HTML5制作的爱心树表白动画
2015/02/01 Javascript
jQuery实现向下滑出的二级菜单效果实例
2015/08/22 Javascript
基于js文件加载优化(详解)
2018/01/03 Javascript
vue缓存的keepalive页面刷新数据的方法
2019/04/23 Javascript
在JavaScript中使用严格模式(Strict Mode)
2019/06/13 Javascript
python删除列表内容
2015/08/04 Python
python安装教程 Pycharm安装详细教程
2017/05/02 Python
Django使用Celery异步任务队列的使用
2018/03/13 Python
Python给图像添加噪声具体操作
2019/03/03 Python
python 图片去噪的方法示例
2019/07/09 Python
python GUI库图形界面开发之PyQt5输入对话框QInputDialog详细使用方法与实例
2020/02/27 Python
Python3+selenium配置常见报错解决方案
2020/08/28 Python
Web前端绘制0.5像素的几种方法
2017/08/11 HTML / CSS
检测用户浏览器是否支持CSS3的方法
2009/08/29 HTML / CSS
HTML5输入框下拉菜单功能的示例代码
2020/09/08 HTML / CSS
linux比较文件内容的命令是什么
2015/09/23 面试题
Java语言程序设计测试题判断题部分
2013/01/06 面试题
学生会竞选自荐信
2013/10/12 职场文书
医药工作岗位求职信分享
2013/12/31 职场文书
工厂保安员岗位职责
2014/01/31 职场文书
医院搬迁方案
2014/06/14 职场文书
2014学习优秀共产党员先进事迹思想汇报
2014/09/14 职场文书
咖啡店创业计划书范文
2014/09/15 职场文书
考试作弊检讨书怎么写?
2014/12/21 职场文书
2015年中学校长工作总结
2015/05/19 职场文书
大一新生军训新闻稿
2015/07/17 职场文书
CSS3通过var()和calc()函数实现动画特效
2021/03/30 HTML / CSS
MySQL数字类型自增的坑
2021/05/07 MySQL
详解JVM系列之内存模型
2021/06/10 Javascript
python随机打印成绩排名表
2021/06/23 Python