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
PHP之COOKIE支持详解
Sep 20 PHP
php图片加水印原理(超简单的实例代码)
Jan 18 PHP
PHP-redis中文文档介绍
Feb 07 PHP
AJAX的跨域访问-两种有效的解决方法介绍
Jun 22 PHP
PHP通过插入mysql数据来实现多机互锁实例
Nov 05 PHP
php设计模式之单例模式实例分析
Feb 25 PHP
PHP滚动日志的代码实现
Jun 10 PHP
PHP如何将XML转成数组
Apr 04 PHP
php运行报错Call to undefined function curl_init()的最新解决方法
Nov 20 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
Mar 04 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
Mar 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
Mysql的常用命令
2006/10/09 PHP
解析CodeIgniter自定义配置文件
2013/06/18 PHP
php/js获取客户端mac地址的实现代码
2013/07/08 PHP
Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】
2019/07/24 PHP
关于php开启错误提示的总结
2019/09/24 PHP
js 调整select 位置的函数
2008/02/21 Javascript
jquery ajax对特殊字符进行转义防止js注入使用示例
2013/11/21 Javascript
ECMAScript5中的对象存取器属性:getter和setter介绍
2014/12/08 Javascript
jQuery中bind()方法用法实例
2015/01/19 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
2015/10/24 Javascript
JavaScript学习小结之被嫌弃的eval函数和with语句实例详解
2016/08/01 Javascript
Javascript 创建类并动态添加属性及方法的简单实现
2016/10/20 Javascript
深入理解JavaScript中的块级作用域、私有变量与模块模式
2016/10/31 Javascript
js实现简单的获取验证码按钮效果
2017/03/03 Javascript
详谈AngularJs 控制器、数据绑定、作用域
2017/07/09 Javascript
基于nodejs res.end和res.send的区别
2018/05/14 NodeJs
浅谈开发eslint规则
2018/10/01 Javascript
javascript面向对象创建对象的方式小结
2019/07/29 Javascript
js实现简单放大镜效果
2020/03/07 Javascript
利用python爬取散文网的文章实例教程
2017/06/18 Python
将TensorFlow的模型网络导出为单个文件的方法
2018/04/23 Python
Python使用pickle模块储存对象操作示例
2018/08/15 Python
python常用库之NumPy和sklearn入门
2019/07/11 Python
OpenCV+Python--RGB转HSI的实现
2019/11/27 Python
tensorflow实现二维平面模拟三维数据教程
2020/02/11 Python
Django操作session 的方法
2020/03/09 Python
CSS3 实现发光边框特效
2020/11/11 HTML / CSS
HTML5对手机页面长按会粘贴复制禁用的解决方法
2016/07/19 HTML / CSS
Java面试笔试题大全
2016/11/23 面试题
企业办公室主任岗位职责
2014/02/19 职场文书
初中毕业生自我评价
2015/03/02 职场文书
求职简历自我评价怎么写
2015/03/10 职场文书
音乐剧猫观后感
2015/06/04 职场文书
社会实践单位意见
2015/06/05 职场文书
七年级作文之英语老师
2019/10/28 职场文书
学会Python数据可视化必须尝试这7个库
2021/06/16 Python