位置: 編程技術(shù) - 正文
首先來看下上傳部分的表單代碼: 這里有幾個要注意的地方,首先看這句<form method="post" action="upload.php" enctype="multipart/form-data">,這里我們采用POST方法,個別瀏覽器還支持PUT方法,當然這需要對腳本進行修改,我并不建議這么做。表單中必須設(shè)置enctype="multipart/form-data,這樣,服務(wù)器就知道上傳文件帶有常規(guī)表單信息,記住,這個是必須設(shè)置的。此外還需要一個隱藏域來限制上傳文件的最大長度:<input type="hidden" name="MAX_FILE_SIZE" value="">,這里name必須設(shè)置成MAX_FILE_SIZE,其值就是上傳文件的最大長度,單位是B,這里我限制成2M。再看這句:<input name="file" type="file" value="瀏覽" >,type="file"說明了文件類型,這樣一個基本的上傳文件接口就完成了,接下來講講如何用PHP來處理上傳的文件,此外你的php.ini中設(shè)置的上傳文件最大長度可能會影響到你的實際上傳,請根據(jù)實際情況修改,另PHP的上傳是先傳到臨時目錄,在移至指定目錄的,了;臨時目錄的可根據(jù)需要修改,也可使用默認值。 好的,表單提交upload.php,來看看這個頁面都有什么: PHP代碼如下: 剛看這些你可能有點暈~~,不過不要緊,聽我講完,你就會發(fā)現(xiàn)其實這玩意SO EASY!!首先我講下原理,該程序以上傳圖片為例,先判斷文件類型是否為圖片格式,若是則上傳文件,以隨機數(shù)和時間的組合重新命名文件(避免上傳文件重名,這樣做很有必要!),接著上傳文件到指定目錄,成功上傳則輸出上傳的圖片預(yù)覽。這里要對程序中一些函數(shù)作些解釋。先看return substr(strrchr($filename, '.'), 1), strrchar()函數(shù)有什么作用呢,我舉個例子大家就知道,比如一個圖片文件 pic.jpg,我們用 strrchr處理,strrchr(pic.jpg,'.'),它將返回.jpg,明白了嗎?該函數(shù)返回指定字符在該字符串最后出現(xiàn)的位置后的字符。配合 substr() 我們就可以取到j(luò)pg,這樣我們就得到了文件的后綴名,來判斷上傳文件是否符合指定格式。本程序把指定的格式放在一個數(shù)組中,實際使用時可根據(jù)需要添加。 接下來看產(chǎn)生隨機數(shù)文件名部分, 我們看到mt_srand()這個函數(shù),手冊上叫他“播下一個更好的隨機數(shù)發(fā)生器種子”,其實就是初始化一個隨機數(shù)的函數(shù),參數(shù)是(double)microtime() * ,這里如果不這是參數(shù)就會自動設(shè)置個隨機數(shù),當然這不符合我們的需要,如此一來,隨機數(shù)就具備一定的長度,保證了上傳文件不重名。接著,我們調(diào)用判斷文件類型的函數(shù),并將其轉(zhuǎn)化為小寫strtolower(fileext($_FILES['file']['name'])),這里有個很關(guān)鍵的東東$_FILES ,這是個超級全局數(shù)組,保存了需要處理的表單數(shù)據(jù),如果開啟了register_globals,也可以直接訪問,但這是不安全的。看剛才那個上傳接口<input name="file" type="file" value="瀏覽" >,根據(jù)這個表單名稱,我們可以得到很多信息: $_FILES['file']['name']-- 得到文件名稱 $_FILES['file']['tmp_name']--得到臨時存儲位置 $_FILES['file']['size']--得到文件大小 $_FILES['file']['type']--得到文件MIME類型 得到這些信息,我們就可以輕松判斷文件的信息了,是不是很方便?^_^,接下來還有一些函數(shù)需要了解,file_exists()--判斷指定目錄是否存在,不存在我們當然不能上傳(好像是廢話?。?,move_uploaded_file--將上傳文件移至指定目錄,is_uploaded_file--判斷文件是否已經(jīng)通過HTTP POST上傳。成功上傳,我們就輸出預(yù)覽,否則輸出上傳失??!大功告成 大家可根據(jù)這個進行擴展,比如配合JS實現(xiàn)多文件上傳,如DZ的上傳效果,再深一點結(jié)合AJAX實現(xiàn)無刷新上傳,很多博客都有采用,最后播放下下兩篇原創(chuàng)文章的預(yù)告 1 我將把這個例子擴展,增加后臺和數(shù)據(jù)庫部分,實現(xiàn)上傳文件管理,審核,將發(fā)布在原創(chuàng)區(qū)。 2 利用目錄函數(shù)實現(xiàn)文件管理,將發(fā)布在新手區(qū) 希望感興趣的朋友屆時觀看~~~,謝謝?。。。。?!
推薦整理分享PHP文件上傳實例詳解?。?!(php實現(xiàn)文件上傳),希望有所幫助,僅作參考,歡迎閱讀內(nèi)容。
文章相關(guān)熱門搜索詞:php 上傳,php中實現(xiàn)文件上傳需要用到哪幾個函數(shù),php如何實現(xiàn)文件上傳,php如何實現(xiàn)文件上傳,php 上傳,php上傳文件夾,php實現(xiàn)文件上傳,php中實現(xiàn)文件上傳需要用到哪幾個函數(shù),內(nèi)容如對您有幫助,希望把文章鏈接給更多的朋友!
新手學PHP之數(shù)據(jù)庫操作詳解及亂碼解決! 很多朋友新學PHP也許在數(shù)據(jù)庫方面會有點麻煩,尤其是MYSQL4.1.x以后會出現(xiàn)亂碼問題。這里寫個簡單教程,希望對新手有點幫助。也許很多朋友之前是學A
一個PHP操作Access類(PHP+ODBC+Access) ?php--------------------------------------------------------------------//FileName:class.php//Summary:Access數(shù)據(jù)庫操作類//Author:forest//CreateTime:-8-//
PHP語法速查表 Abs:取得絕對值。Acos:取得反余弦值。ada_afetch:取得資料庫的傳回列。ada_autocommit:開關(guān)自動更動功能。ada_close:關(guān)閉AdabasD連結(jié)。ada_commit:更動AdabasD資料庫。a
標簽: php實現(xiàn)文件上傳
本文鏈接地址:http://esstyw.cn/biancheng/276586.html 轉(zhuǎn)載請保留說明!上一篇:AJAX for PHP簡單表數(shù)據(jù)查詢實例(ajax調(diào)用php函數(shù))
網(wǎng)站地圖: 企業(yè)信息 工商信息 財稅知識 網(wǎng)絡(luò)常識 編程技術(shù)
友情鏈接: 武漢網(wǎng)站建設(shè)