亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網(wǎng)絡(luò),我們將竭誠(chéng)為您提供優(yōu)質(zhì)的服務(wù)! 誠(chéng)征網(wǎng)絡(luò)推廣 | 網(wǎng)站備案 | 幫助中心 | 軟件下載 | 購(gòu)買流程 | 付款方式 | 聯(lián)系我們 [ 會(huì)員登錄/注冊(cè) ]
促銷推廣
客服中心
業(yè)務(wù)咨詢
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352289
點(diǎn)擊這里給我發(fā)消息  81721488
有事點(diǎn)擊這里…  376585780
有事點(diǎn)擊這里…  872642803
有事點(diǎn)擊這里…  459248018
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  380791050
技術(shù)支持
有事點(diǎn)擊這里…  714236853
有事點(diǎn)擊這里…  719304487
有事點(diǎn)擊這里…  1208894568
有事點(diǎn)擊這里…  61352289
在線客服
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  983054746
有事點(diǎn)擊這里…  893984210
當(dāng)前位置:首頁 >> 技術(shù)文章 >> 文章瀏覽
技術(shù)文章

PHP上傳原理及操作實(shí)現(xiàn)

添加時(shí)間:2014-9-21 20:41:49  添加: 思海網(wǎng)絡(luò) 

關(guān)于PHP上傳文件的函數(shù)類庫,網(wǎng)上有許多封裝很完善,大家直接拿來用就可以。

本文章只是說下關(guān)于上傳原理和簡(jiǎn)單的上傳操作,老鳥就無視了哈^_^~

還有一些安全性判斷比如:服務(wù)端限制能接收?qǐng)D片類型的文件,而客戶端惡意將病毒文件的后綴名改為圖片配型的文件上傳。

        上傳文件: 

1、Form標(biāo)簽enctype屬性

表單中enctype="multipart/form-data"是用于設(shè)置表單的MIME編碼。
默認(rèn)情況,這個(gè)編碼格式是application/x-www-form-urlencoded,不能用于文件上傳;
只有使用了multipart/form-data且提交方式為Post才能完整的傳遞文件數(shù)據(jù)。

2、MAX_FILE_SIZE 隱藏字段

MAX_FILE_SIZE 隱藏字段(單位為字節(jié))必須放在文件輸入字段之前,其值為接收文件的最大尺寸。這是對(duì)瀏覽器的一個(gè)建議,PHP 也會(huì)檢查此項(xiàng)。
在瀏覽器端可以簡(jiǎn)單繞過此設(shè)置,因此不要指望用此特性來阻擋大文件。(不過鑒于友好性最好還是在表單中加上此項(xiàng)目,因?yàn)樗梢员苊庥脩粼诨〞r(shí)間等待上傳大文件之后才發(fā)現(xiàn)文件過大上傳失敗的麻煩。)

upload.php

我們可以看到:


Array
(
    [file] => Array
        (
            [name] => 照片文件.jpg
            [type] => image/jpeg
            [tmp_name] => F:\wamp\tmp\php41BB.tmp
            [error] => 0
            [size] => 73886
        )

)

3、全局變量 $_FILES的應(yīng)用

  $_FILES["file"]["name"]  為上傳文件的原文件名

  $_FILES["file"]["type"]  為上傳文件的 MIME 類型

  $_FILES["file"]["size"]  已上傳文件的大小,單位為字節(jié)

  $_FILES["file"]["tmp_name"]  文件被上傳后在服務(wù)端儲(chǔ)存的臨時(shí)文件名()

  $_FILES["file"]["error"]  文件上傳的錯(cuò)誤代碼

4、默認(rèn)情況下,上傳文件會(huì)保存在服務(wù)端的臨時(shí)文件夾中,其目錄在php.ini中設(shè)置

php.ini與文件上傳有關(guān)的一些常用設(shè)置:

file_uploads ;  是否允許通過HTTP上傳文件的開關(guān)。默認(rèn)為ON即是開

upload_tmp_dir ;  文件上傳至服務(wù)器上存儲(chǔ)臨時(shí)文件的地方,如果沒指定就會(huì)用系統(tǒng)默認(rèn)的臨時(shí)文件夾

upload_max_filesize;  即允許上傳文件大小的最大值。默認(rèn)為2M

post_max_size;  指通過表單POST給PHP的所能接收的最大值,包括表單里的所有值。默認(rèn)為8M

下面是對(duì)單文件上傳的完整代碼,因?yàn)槭请S想隨寫的,可能邏輯嵌套的有點(diǎn)亂,懂原理最重要。


0){
            //上傳文件錯(cuò)誤編號(hào)判斷
            switch ($fileError) {
                case 1:
                    $message="上傳的文件超過了php.ini 中 upload_max_filesize 選項(xiàng)限制的值。"; 
                    break;
                case 2:
                    $message="上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項(xiàng)指定的值。"; 
                    break;
                case 3:
                    $message="文件只有部分被上傳。"; 
                    break;
                case 4:
                    $message="沒有文件被上傳。";
                    break;
                case 6:
                    $message="找不到臨時(shí)文件夾。"; 
                    break;
                case 7:
                    $message="文件寫入失敗"; 
                    break;
                case 8:
                    $message="由于PHP的擴(kuò)展程序中斷了文件上傳";
                    break;
            }

            exit("文件上傳失敗:".$fileError);

        }else{
            if($fileSize>100000){
                //對(duì)特定表單的上傳文件限制大小
                exit("上傳文件超出限制大小");
            }else{
                //避免上傳文件的中文名亂碼
                $fileName=iconv("UTF-8", "GBK", $fileName);//把iconv抓取到的字符編碼從utf-8轉(zhuǎn)為gbk輸出
                if(move_uploaded_file($tempName, "uploads/".$fileName)){
                    echo "上傳文件成功!";
                }else{
                    echo "上傳文件失敗";
                }
            }

        }

    }


?>

5、關(guān)于php上傳文件的一些常用函數(shù):(具體用法就不貼出來了,自己看API文檔吧 ^_^)

file_exists  檢查文件或目錄是否存在

is_uploaded_file    判斷文件是否是通過 HTTP POST 上傳的

move_uploaded_file    將上傳的文件移動(dòng)到新位置

is_writable   判斷給定的文件名是否可寫

iconv  字符編碼互轉(zhuǎn)

getimagesize  檢查是否為圖片文件(其他類型的文件就算后綴名改了也能被檢測(cè)到)

關(guān)鍵字:PHP、服務(wù)端、原理、數(shù)據(jù)

分享到:

頂部 】 【 關(guān)閉
版權(quán)所有:佛山思海電腦網(wǎng)絡(luò)有限公司 ©1998-2024 All Rights Reserved.
聯(lián)系電話:(0757)22630313、22633833
中華人民共和國(guó)增值電信業(yè)務(wù)經(jīng)營(yíng)許可證: 粵B1.B2-20030321 備案號(hào):粵B2-20030321-1
網(wǎng)站公安備案編號(hào):44060602000007 交互式欄目專項(xiàng)備案編號(hào):200303DD003  
察察 工商 網(wǎng)安 舉報(bào)有獎(jiǎng)  警警  手機(jī)打開網(wǎng)站