程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php學習筆記:文件的上傳(包含設置文件的上傳大小限制),

php學習筆記:文件的上傳(包含設置文件的上傳大小限制),

編輯:關於PHP編程

php學習筆記:文件的上傳(包含設置文件的上傳大小限制),


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

<?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. 一般的文件上傳,除非文件很小.就像一個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 為佳.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved