热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP文件上传的实现及其介绍php文件是什么文件php上传文件代码php文件上传大小设

php文件,文件上传:PHP文件上传的实现及其介绍:关于实现及介绍在程序注释中。提交文件的页面:(可以分别提交到doAction.php、doAction1.php、doAction2.php进行测试)upload.php文件上传<formactiondoActi
关于实现及介绍在程序注释中。

提交文件的页面:(可以分别提交到doAction.php、doAction1.php、doAction2.php进行测试)

upload.php



    
    


    
        
        
        请选择您要上传的文件:
        
        
        

doAction.php


doAction1.php


doAction2.php

 $maxSize) {
        exit(&#39;上传文件过大&#39;);
    }

    echo $fileInfo[&#39;type&#39;]; exit;

    //$ext = strtolower(end(explode(&#39;.&#39;, $fileInfo[&#39;name&#39;])));
    $ext = pathinfo($fileInfo[&#39;name&#39;],PATHINFO_EXTENSION);
    if(!in_array($ext, $allowExt)) {
        exit(&#39;非法文件类型&#39;);
    }

    //判断文件是否是通过HTTP POST方式上传来的
    if(!is_uploaded_file($fileInfo[&#39;tmp_name&#39;])) {
        exit(&#39;文件不是通过HTTP POST方式上传来的&#39;);
    }

    //检测是否为真实的图片类型
    /*
     * getimagesize($filename):得到指定图片的信息,如果是图片返回数组
     * 如果不是图片(哪怕文件的后缀是图片的格式,实际上不是图片的话),返回false。
     */
    if($flag) {
        if(!getimagesize($fileInfo[&#39;tmp_name&#39;])) {
            exit(&#39;不是真正的图片类型&#39;);
        }
    }

    $path = &#39;uploads&#39;;
    //php利用mkdir创建多级目录 http://www.daixiaorui.com/read/38.html
    /*
     * mkdir($path,0777,true);
     * 第一个参数:必须,代表要创建的多级目录的路径;
     * 第二个参数:设定目录的权限,默认是 0777,意味着最大可能的访问权;
     * 第三个参数:true表示允许创建多级目录。
     */
    /*
     * chmod() 函数改变文件模式。
     * 如果成功则返回 TRUE,否则返回 FALSE。
     */
    if(!file_exists($path)) {
        mkdir($path, 0777, true); // 0777表示可读可写可执行
        chmod($path, 0777);
    }
    //确保文件名位移,放置重名产生覆盖
    /*
     * uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID。
     * 语法
     * uniqid(prefix,more_entropy)
     * 参数	描述
     * prefix	可选。为 ID 规定前缀。如果两个脚本恰好在相同的微秒生成 ID,该参数很有用。
     * more_entropy	可选。规定位于返回值末尾的更多的熵。
     */
    /*
     * microtime()返回当前 Unix 时间戳和微秒数。
     * PHP函数microtime()语法
     * microtime(get_as_float)
     * PHP函数microtime()参数与描述
     * get_as_float 如果给出了 get_as_float 参数并且其值等价于 TRUE,该函数将返回一个浮点数。
     * 通俗地说,带参数true表明只返回一个浮点数(即秒数),不带参数返回一个微秒+秒的字符串。
     * ";
     * echo microtime(true);
     * ?>
     * 结果如下:
     * 0.00000600 1283757623
     * 1283757623
     */
    $uniName = md5(uniqid(microtime(true), true)) . &#39;.&#39; . $ext;
    //$destination = $path . &#39;/&#39; . $fileInfo[&#39;name&#39;];
    $destination = $path . &#39;/&#39; . $uniName;

    if(@move_uploaded_file($fileInfo[&#39;tmp_name&#39;], $destination)) {
        echo &#39;文件上传成功&#39;;
    } else {
        echo &#39;文件上传失败&#39;;
    }
} else {
    //匹配错误信息
    switch($fileInfo[&#39;error&#39;]) {
        case 1:
            echo &#39;上传文件超过了PHP配置文件中upload_max_filesize选项的值&#39;;
            break;
        case 2:
            echo &#39;超过了表单MAX_FILE_SIZE限制的大小&#39;;
            break;
        case 3:
            echo &#39;文件部分被上传&#39;;
            break;
        case 4:
            echo &#39;没有选择上传文件&#39;;
            break;
        case 6:
            echo &#39;没有找到临时目录&#39;;
            break;
        case 7:
        case 8:
            echo &#39;系统错误&#39;;
            break;
    }
}

以上就介绍了PHP文件上传的实现及其介绍,包括了php文件,文件上传方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 本周信息安全小组主要进行了CTF竞赛相关技能的学习,包括HTML和CSS的基础知识、逆向工程的初步探索以及整数溢出漏洞的学习。此外,还掌握了Linux命令行操作及互联网工作原理的基本概念。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 本文总结了汇编语言中第五至第八章的关键知识点,涵盖间接寻址、指令格式、安全编程空间、逻辑运算指令及数据重复定义等内容。通过详细解析这些内容,帮助读者更好地理解和应用汇编语言的高级特性。 ... [详细]
  • 本文介绍了如何使用jQuery根据元素的类型(如复选框)和标签名(如段落)来获取DOM对象。这有助于更高效地操作网页中的特定元素。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 尽管某些细分市场如WAN优化表现不佳,但全球运营商路由器和交换机市场持续增长。根据最新研究,该市场预计在2023年达到202亿美元的规模。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
author-avatar
初吻给了烟200309
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有