热门标签 | 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教程有兴趣的朋友有所帮助。

推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
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社区 版权所有