php:檔案的上傳(包含設定檔的上傳大小限制)

高洛峰
發布: 2016-10-10 10:36:52
原創
1568 人瀏覽過

今天寫的是文件上傳,前幾天自學的正規則又忘了,用了很笨的方法去判斷格式,直接上碼:

<?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[&#39;subbtn&#39;])){

    echo $_FILES[&#39;file&#39;][&#39;type&#39;]."<br/>";

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



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

    //$_FILES[&#39;file&#39;][&#39;error&#39;]  上传错误代码
    //$_FILES[&#39;file&#39;][&#39;name&#39;]   上传文件名

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

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

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

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

        move_uploaded_file($file[&#39;tmp_name&#39;], "files/".$file[&#39;name&#39;]);

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

?>
登入後複製

                                         格式且對的,且直接被擷取。 php:檔案的上傳(包含設定檔的上傳大小限制)

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

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.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板