php:文件的上传(包含设置文件的上传大小限制)

高洛峰
发布: 2016-10-10 10:36:52
原创
1803人浏览过

今天写的是文件上传,前几天自学的正规则又忘记了,用了很笨的方法去判断格式,直接上代码:

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 16-9-12
 * Time: 上午10:01
 *
 * 文件上传
 *
 */




?>


    <form action="upload.php" method="post" enctype="multipart/form-data">
        上传文件:<input type="file" name="file" id="file">
        <br/>
        <input type="submit" name="subbtn" value="上传">
    </form>


<?php

if(isset($_POST['subbtn'])){

    echo $_FILES['file']['type']."<br/>";

    /*
     * JPG image/jpeg
     * GIF image/gif
     * PNG image/png
     *
     */



    //文件上传处理程序:
    //$_FILES['file']['type']  上传文件的类型
    //$_FILES['file']['size']  上传文件的大小

    //$_FILES['file']['error']  上传错误代码
    //$_FILES['file']['name']   上传文件名

    //$_FILES['file']['tmp_name'] 临时文件名
//$fileName="a.TXT";
//$pos = strrpos($fileName,".");
//$ext = strtolower(substr($fileName,$pos));
//

    $file = $_FILES['file'];
    $fileName=$file['name'];
    echo '后缀切割前:'.  $file['name']."<br/>";
    //确定最后一个.出现的位置
    $pos = strrpos($file['name'],'.');
    //转换文件名为小写
    $ext = strtolower(" $fileName");
    //提取文件名后缀
    $fileExten=substr($ext,$pos+2);

    //判断文件后缀时候符合特定要求,这里设置为:jpg jpeg doc
    if($fileExten=='jpg'||$fileExten=='jpeg'||$fileExten=='doc' ){

        echo "文件后缀:". $fileExten. "<br/>";
        echo "文件类型:". $file['type']."<br/>";
        echo "文件大小:". $file['size']."<br/>";
        echo "错误代码:". $file['error']."<br/>";
        echo "文件名:". $file['name']."<br/>";
        echo "临时文件名:". $file['tmp_name']."<br/>";

        move_uploaded_file($file['tmp_name'], "files/".$file['name']);

    }else
        echo "文件格式不对";
}

?>
登录后复制

                                  1.jpg

                                    格式不对的,直接被拦截。

如果要修改上传的文件大小限制,可以参考下面的做法:

1. 一般的文件上传,除非文件很小.就像一个5M的文件,很可能要超过一分钟才能上传完.
但在php中,默认的该页最久执行时间为 30 秒.就是说超过30秒,该脚本就停止执行.
这就导致出现 无法打开网页的情况.这时我们可以修改 max_execution_time
在php.ini里查找
max_execution_time
默认是30秒.改为
max_execution_time = 0
0表示没有限制
2. 修改 post_max_size 设定 POST 数据所允许的最大大小。此设定也影响到文件上传。
php默认的post_max_size 为2M.如果 POST 数据尺寸大于 post_max_size $_POST 和 $_FILES superglobals 便会为空.
查找 post_max_size .改为
post_max_size = 150M
3. 很多人都会改了第二步.但上传文件时最大仍然为 8M.
为什么呢.我们还要改一个参数upload_max_filesize 表示所上传的文件的最大大小。
查找upload_max_filesize,默认为8M改为
upload_max_filesize = 100M
另外要说明的是,post_max_size 大于 upload_max_filesize 为佳.

立即学习PHP免费学习笔记(深入)”;

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号