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 相关文章推荐
回答PHPCHINA上的几个问题:URL映射
Feb 14 PHP
PHP 事件机制(2)
Mar 23 PHP
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
Jun 05 PHP
ThinkPHP实现将SESSION存入MYSQL的方法
Jul 22 PHP
PHP中__FILE__、dirname与basename用法实例分析
Dec 01 PHP
PHP中的命名空间相关概念浅析
Jan 22 PHP
PHP实现获取客户端IP并获取IP信息
Mar 17 PHP
php实现中文字符截取防乱码方法汇总
Apr 29 PHP
基础的WordPress插件制作教程
Nov 24 PHP
PHPCMS V9 添加二级导航的思路详解
Oct 20 PHP
php实现生成code128条形码的方法详解
Jul 19 PHP
PHP数组访问常用方法解析
Sep 05 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如何获取当前主机、域名、网址、路径、端口和参数等
2016/09/09 PHP
PHP闭包定义与使用简单示例
2018/04/13 PHP
Jquery数独游戏解析(一)-页面布局
2010/11/05 Javascript
jquery复选框全选/取消示例
2013/12/30 Javascript
node.js中的fs.appendFile方法使用说明
2014/12/17 Javascript
jquery专业的导航菜单特效代码分享
2015/08/29 Javascript
深入理解JavaScript 参数按值传递
2017/05/24 Javascript
20行js代码实现的贪吃蛇小游戏
2017/06/20 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
js解决软键盘遮挡输入框的问题分享
2017/12/19 Javascript
React 源码中的依赖注入方法
2018/11/07 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
Vuex模块化应用实践示例
2020/02/03 Javascript
python解析xml文件实例分享
2013/12/04 Python
Tornado服务器中绑定域名、虚拟主机的方法
2014/08/22 Python
Python脚本实现集群检测和管理功能
2015/03/06 Python
Python通过Django实现用户注册和邮箱验证功能代码
2017/12/11 Python
Python实现的简单计算器功能详解
2018/08/25 Python
快速排序的四种python实现(推荐)
2019/04/03 Python
python实现微信防撤回神器
2019/04/29 Python
详解python编译器和解释器的区别
2019/06/24 Python
django删除表重建的实现方法
2019/08/28 Python
Python测试线程应用程序过程解析
2019/12/31 Python
python 使用cx-freeze打包程序的实现
2020/03/14 Python
Keras之fit_generator与train_on_batch用法
2020/06/17 Python
HTML5手机端弹出遮罩菜单特效代码
2016/01/27 HTML / CSS
美国在线打印网站:Overnight Prints
2018/10/11 全球购物
大学毕业生自我鉴定
2013/11/05 职场文书
茶叶店创业计划书范文
2014/01/19 职场文书
社区护士演讲稿
2014/08/27 职场文书
三潭印月的导游词
2015/02/12 职场文书
工程合作意向书范本
2015/05/09 职场文书
2015企业年终工作总结范文
2015/05/27 职场文书
结婚典礼主持词
2015/06/29 职场文书
2015年学校远程教育工作总结
2015/07/20 职场文书
Nginx部署vue项目和配置代理的问题解析
2021/08/04 Servers