亚洲av无码乱码国产一区二区,午夜理论片yy44880影院,午夜久久久久久禁播电影,熟睡人妻被讨厌的公侵犯

30
2018/06

PHP如何上傳文件到指定目錄

發(fā)布時(shí)間:2018-06-30 11:32:57
發(fā)布者:pengyifeng
瀏覽量:
0

PHP實(shí)現(xiàn)上傳文件的方法

1.表單上傳文件,用file字段 
允許用戶上傳文件,在HTML表單的聲明中要加上一個(gè)上傳的屬性: 
enctype = 'multipart/form-data' 
表單的method必須是POST 
表單選項(xiàng)MAX_FILE_SIZE隱藏域用于限制上傳文件大小,它必須放在文件表單元素前面,單位為字節(jié)。 

image.png

上傳時(shí),PHP收到關(guān)于該文件的信息數(shù)組,這些信息可以在$_FILES這個(gè)超級(jí)全局?jǐn)?shù)組中找到。 
如:上傳了一個(gè)“wenhui.jpg”的圖片數(shù)組值如下: 
name "wenhui.jpg" 上傳時(shí)文件的名字 
type “image/jpeg" 文件類型 
tmp_name "/tmp/wenhui" 服務(wù)器端的臨時(shí)文件名 
error 上傳錯(cuò)誤的返回值 
size 2045 文件實(shí)際大小 

3.把臨時(shí)文件存儲(chǔ)到指定路徑,上傳文件就成功了,現(xiàn)在解決的就是如果存到指定路徑,如果路徑中文件夾不存在如何創(chuàng)建的方法;

bool mkdir ( string pathname [, int mode [, bool recursive [, resource context]]] )

嘗試新建一個(gè)由 pathname 指定的目錄。

注意也許想用八進(jìn)制數(shù)指定模式,也就是說該數(shù)應(yīng)以零打頭。模式也會(huì)被當(dāng)前的 umask 修改,可以用 umask() 來改變。

注意: mode 在 Windows 下被忽略。自 PHP 4.2.0 起成為可選項(xiàng)。

默認(rèn)的 mode 是 0777,意味著最大可能的訪問權(quán)。有關(guān) mode 的更多信息請(qǐng)閱讀 chmod() 頁面。 

1.首先 簡(jiǎn)單說一下mkdir()與mkdirs()的區(qū)別,以及,is_dir和dirname():

mkdir()  只能在已經(jīng)存在的目錄中創(chuàng)建創(chuàng)建文件夾(即父級(jí)必須有才行)。

mkdirs()  可以在不存在的目錄中創(chuàng)建文件夾。諸如:a\b,既可以創(chuàng)建多級(jí)目錄。

dirname()  是返回路徑中的目錄部分。

is_dir()  用于判斷給出的文件名是否是一個(gè)有效的目錄

2.大致流程為:

(1) 先用is_dir判斷是否已是一個(gè)文件夾,如果是則返回TRUE。如沒有(或者不是文件夾),則試著創(chuàng)建它,當(dāng)然有可以父級(jí)不存在,那mkdir直接就創(chuàng)不成功,但也為不報(bào)錯(cuò),所以就用@來抑止報(bào)非致命錯(cuò)誤。

(2)如果傳參數(shù)都不滿足條件,那么就進(jìn)入第二個(gè)if語句,先是取得路徑中的目錄部分,當(dāng)然有可能是不存在的多級(jí)父級(jí),所以用了mkdirs()來先創(chuàng)建父級(jí),如果成功(不成功返回FALSE),那么再用mkdir來創(chuàng)建最終的目錄了。

好了,以上就是第一種方案。

第二種

(說明:此方案代碼精簡(jiǎn),推薦使用)

function create_folders($dir) {
    return is_dir($dir) or (create_folders(dirname($dir)) and mkdir($dir, 0777));
}


關(guān)鍵詞:
返回列表