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中显示格式化的用户输入
Oct 09 PHP
杏林同学录(三)
Oct 09 PHP
探讨php中遍历二维数组的几种方法详解
Jun 08 PHP
配置php网页显示各种语法错误
Sep 23 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
Mar 21 PHP
Linux php 中文乱码的快速解决方法
May 13 PHP
php+html5+ajax实现上传图片的方法
May 14 PHP
php+flash+jQuery多图片上传源码分享
Jul 27 PHP
PHP递归获取目录内所有文件的实现方法
Nov 01 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
Dec 15 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
Oct 26 PHP
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
Oct 15 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
Yii操作数据库的3种方法
2014/03/11 PHP
PHP中for循环与foreach的区别
2017/03/06 PHP
yii2项目实战之restful api授权验证详解
2017/05/20 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
不错的JS中变量相关的细节分析
2007/08/13 Javascript
js 上传图片预览问题
2010/12/06 Javascript
引用外部脚本时script标签关闭的写法
2014/01/20 Javascript
JavaScript实现的一个日期格式化函数分享
2014/12/06 Javascript
Node.js事件驱动
2015/06/18 Javascript
javascript创建cookie、读取cookie
2016/03/31 Javascript
3kb jQuery代码搞定各种树形选择的实现方法
2016/06/10 Javascript
Vue.js每天必学之数据双向绑定
2016/09/05 Javascript
详解微信小程序入门五: wxml文件引用、模版、生命周期
2017/01/20 Javascript
JavaScript门面模式详解
2017/10/19 Javascript
使用elementUI实现将图片上传到本地的示例
2018/09/04 Javascript
微信小程序-API接口安全详解
2019/07/16 Javascript
VUE中使用HTTP库Axios方法详解
2020/02/05 Javascript
Vue.js原理分析之nextTick实现详解
2020/09/07 Javascript
浅析微信小程序自定义日历组件及flex布局最后一行对齐问题
2020/10/29 Javascript
[46:25]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第二局
2016/03/05 DOTA
进一步探究Python的装饰器的运用
2015/05/05 Python
Python中的descriptor描述器简明使用指南
2016/06/02 Python
python cx_Oracle模块的安装和使用详细介绍
2017/02/13 Python
Python如何生成树形图案
2018/01/03 Python
Python模拟脉冲星伪信号频率实例代码
2018/01/03 Python
python自动12306抢票软件实现代码
2018/02/24 Python
Python实现的建造者模式示例
2018/08/06 Python
python selenium实现发送带附件的邮件代码实例
2019/12/10 Python
python小白切忌乱用表达式
2020/05/29 Python
Keras实现支持masking的Flatten层代码
2020/06/16 Python
中学实习教师自我鉴定
2013/12/12 职场文书
中学生秋季运动会广播稿
2014/09/21 职场文书
会计稽核岗位职责
2015/04/13 职场文书
退休职工欢送会致辞
2015/08/01 职场文书
慰问信(范文3篇)
2019/10/23 职场文书
判断Python中的Nonetype类型
2021/05/25 Python