文章出處

在我們的系統中,不免要上傳圖片,視頻等文件,在上傳中,需要做的一些判斷,文件大小等方面。

注意:

在php.ini 中的post_max_size,upload_max_filesize默認為2M,在上傳視頻的時候,需要修改下,可以自行設置。

另外如果啟用了內存限制,那么該值應當小于memory_limit選項的值。

在上傳視頻的時候,可以會需要花費些時間,當超過一定的時間,會報腳本執行超過30秒的錯誤,這是因為在php.ini配置文件中max_execution_time配置選項在作怪,其表示每個腳本最大允許執行時間(秒),0 表示沒有限制。你可以適當調整max_execution_time的值,不推薦設定為0。

 

前臺頁面:html

1 <form enctype="multipart/form-data" action='text.php' method="post">
2     <input type="file" name="upfile">
3 
4     <input type="submit" value='上傳文件'>
5 </form>

后臺頁面:php 處理

 1 <script src="./js/jquery2.0.3.min.js"></script>
 2 <?php
 3 var_dump($_FILES);
 4 //$_FILES['upfile']['tmp_name']
 5 //var_dump($_POST);
 6 /*$size = getimagesize($_FILES['upfile']['tmp_name']);
 7 $width = $size[0];
 8 $height = $size[1];*/
 9 //if($width>165 || $height>216){
10 //    echo "圖片長或寬超出限制";
11 //    exit;
12 //}
13 /*if($_FILES['upfile']['size']>20*1024*1024){
14     echo "圖片過大";
15 }*/
16 include_once 'common/util.php';
17 getImgW_H($_FILES['upfile'],10,2016,40,"apk");

3.common文件下 自己寫的函數:util.php

/**
 * @param $file_tmpname
 * 限制上傳文件 的 寬高,大小,后綴名
 * $file = $_files['upfile'],$w 最大寬度,$h 最大高度,$size 最大文件 大小(單位為kb),$type 后綴名
 */
function getImgW_H($file,$w,$h,$size,$type){

    $imgFileName = explode(".",$file['name']);
    $imgExt = $imgFileName[count($imgFileName)-1];
    if(!in_array($imgExt,explode(',',$type))){
        ?>
        <script type="text/javascript">
            alert("請輸入后綴名為<?php echo $type; ?>的文件");
            window.history.go(-1);
        </script>
        <?php
        exit;
    }
    if(!empty($w)&&!empty($h)){
        $s = getimagesize($file['tmp_name']);
        $width = $s[0];
        $height = $s[1];
        if($width>$w || $height>$h){
            ?>
            <script type="text/javascript">
                alert("圖片長或寬超出限制,寬<?php echo $w; ?>,高<?php echo $h; ?>");
                window.history.go(-1);
            </script>
            <?php
            exit;
        }
    }

    if($file['size']>$size*1024){
        ?>
        <script type="text/javascript">
            alert("圖片過大,不大于<?php echo $size; ?>kb");
            window.history.go(-1);
        </script>
        <?php
        exit;
    }

}

 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()