PHP 處理web上傳文件的流程

詳細描述PHP處理web上傳文件的流程,如何限制上傳文件的大小不能超過某個數(shù)值?

1.流程:首先用戶在瀏覽器端選擇上傳的文件,提交后,通過post方式上傳到服務(wù)器由php引擎處理判斷文件是否能夠上傳到php配置文件中指定的臨時目錄,之后獲取文件后綴名判斷文件是否是允許上傳的文件格式,如果沒問題,則按照隨機數(shù)+時間的方式生成文件的名字+后綴。最后將文件從臨時目錄轉(zhuǎn)移至Apache服務(wù)器目錄。
2.在php配置文件中 有一個upload_max_filesize 設(shè)置其值就可以限制上傳文件大小
可以在php.ini文件中的upload_max_filesize = 某值 設(shè)置上傳文件大小,同時也可以在表單中$_FILES['name']['size']限制文件大小,以及服務(wù)器配置中也要設(shè)置上傳文件的大小和上傳時間。
3.同時如果是nginx服務(wù)器,也要設(shè)置其上傳文件的大小限制, client_max_body_size 10m; 如果需要經(jīng)過代理服務(wù)器,則代理服務(wù)器也同樣需要設(shè)置上傳大小配置;

在PHP中,當(dāng)瀏覽器客戶端提交過來的表單請求中包含上傳的文件時,PHP會將上傳的文件先暫時存放在臨時目錄中(在Windows操作系統(tǒng)中,默認的臨時目錄一般為C:/Windows/Temp),然后將上傳文件的相關(guān)信息存放在超全局變量$_FILES中。因此,我們只需要通過$_FILES數(shù)組獲取上傳的文件信息,然后對其進行相應(yīng)的處理操作即可。

1.file_uploads
設(shè)為On,允許通過HTTP上傳文件
2.upload_tmp_dir
文件上傳至服務(wù)器時用于臨時存儲的目錄,如果沒指定,系統(tǒng)會使用默認的臨時文件夾(我的機器是/tmp)。
3.upload_max_filesize
允許上傳文件大小的最大值,默認為2M。
4.post_max_size
php可接收的post數(shù)據(jù)的最大值(包括表單里的所有值的總合),默認為8M。
5.memory_limit
每個php所占的最大內(nèi)存數(shù),這個值要大于允許上傳的文件大小。
6.max_execution_time
每個php運行的最長時間(秒),默認30秒。
7.max_input_time
php解析POST/GET數(shù)據(jù)的最長時間(秒),默認60秒。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 上傳模塊配置樣例: # 上傳大小限制(包括所有內(nèi)容) client_max_body_size 100m; # 上...
    SkTj閱讀 13,574評論 0 3
  • php.ini設(shè)置,上傳大文件: post_max_size = 128Mupload_max_filesize ...
    bycall閱讀 7,034評論 3 64
  • 文件上傳漏洞 常見的漏洞分類服務(wù)器配置不當(dāng)導(dǎo)致文件上傳開源編輯器存在上傳漏洞本地文件上傳限制可以上傳被繞過服務(wù)器端...
    二潘閱讀 17,463評論 2 3
  • Php:腳本語言,網(wǎng)站建設(shè),服務(wù)器端運行 PHP定義:一種服務(wù)器端的HTML腳本/編程語言,是一種簡單的、面向?qū)ο?..
    廖馬兒閱讀 2,361評論 2 38
  • “萬兩黃金容易得,知心一個也難求。”我很慶幸,在為柴米油鹽奔波的路上,有一個知己一直與我同行。 Z是我兒時的留戀 ...
    FengFeng羽竹平閱讀 3,152評論 46 151

友情鏈接更多精彩內(nèi)容