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 相关文章推荐
建立文件交换功能的脚本(三)
Oct 09 PHP
黑夜路人出的几道php笔试题
Aug 04 PHP
PHP下通过file_get_contents的代理使用方法
Feb 16 PHP
php编程实现获取excel文档内容的代码实例
Jun 28 PHP
解析func_num_args与func_get_args函数的使用
Jun 24 PHP
php采集文章中的图片获取替换到本地(实现代码)
Jul 08 PHP
php判断GIF图片是否为动画的方法
Sep 04 PHP
php递归json类实例
Dec 02 PHP
PHP+AJAX实现投票功能的方法
Sep 28 PHP
php实现等比例不失真缩放上传图片的方法
Nov 14 PHP
详解如何在云服务器上部署Laravel
Jun 30 PHP
ThinkPhP+Apache+PHPstorm整合框架流程图解
Nov 23 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 读取文件乱码问题
2010/02/20 PHP
让codeigniter与swfupload整合的最佳解决方案
2014/06/12 PHP
Yii使用技巧大汇总
2015/12/29 PHP
jQuery live( type, fn ) 委派事件实现
2009/10/11 Javascript
Javascript生成json的函数代码(可以用php的json_decode解码)
2012/06/11 Javascript
jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路
2013/04/08 Javascript
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
JS使用ajax从xml文件动态获取数据显示的方法
2015/03/24 Javascript
详解JavaScript中void语句的使用
2015/06/04 Javascript
javascript中sort排序实例详解
2016/07/24 Javascript
微信小程序 支付功能(前端)的实现
2017/05/24 Javascript
vue-cli + sass 的正确打开方式图文详解
2017/10/27 Javascript
JavaScript中使用import 和require打包后实现原理分析
2018/03/07 Javascript
如何把vuejs打包出来的文件整合到springboot里
2018/07/26 Javascript
javascript中call()、apply()的区别
2019/03/21 Javascript
elementUI select组件使用及注意事项详解
2019/05/29 Javascript
vue动态绘制四分之三圆环图效果
2019/09/03 Javascript
JavaScript ES6 Class类实现原理详解
2020/05/08 Javascript
[00:37]2016完美“圣”典风云人物:AMS宣传片
2016/12/06 DOTA
在Django框架中运行Python应用全攻略
2015/07/17 Python
Python常见格式化字符串方法小结【百分号与format方法】
2016/09/18 Python
Python基于ThreadingTCPServer创建多线程代理的方法示例
2018/01/11 Python
Python实现简单文本字符串处理的方法
2018/01/22 Python
Python使用numpy实现BP神经网络
2018/03/10 Python
详谈python3 numpy-loadtxt的编码问题
2018/04/29 Python
浅谈Python里面小数点精度的控制
2018/07/16 Python
pygame游戏之旅 创建游戏窗口界面
2018/11/20 Python
Python实现将蓝底照片转化为白底照片功能完整实例
2019/12/13 Python
Pytorch生成随机数Tensor的方法汇总
2020/09/09 Python
Scholastic父母商店:儿童书籍
2017/01/01 全球购物
美国隐形眼镜零售商:LensPure
2019/03/10 全球购物
营业经理岗位职责
2013/11/10 职场文书
人事专员岗位职责
2013/11/20 职场文书
《我不是最弱小的》教学反思
2014/02/23 职场文书
2015年节能减排工作总结
2015/05/14 职场文书
《现实主义勇者的王国再建记》第三弹OST全曲试听片段公开
2022/04/04 日漫