久久无码中文字幕_日韩精品无码一本二本三_久久精品呦女暗网_欧美一级夜夜爽_久久精品国产99久久99久久久

30
2018/06

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

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

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

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

image.png

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

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

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

嘗試新建一個由 pathname 指定的目錄。

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

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

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

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

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

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

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

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

2.大致流程為:

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

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

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

第二種

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

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


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