教你使文件PHP上傳生效
PHP經過長時間的發展,很多用戶都很了解PHP了,這里我發表一下個人理解,和大家討論討論。PHP是一種用于創建動態WEB頁面的服務端腳本語言。如同ASP 和ColdFusion,用戶可以混合使用PHP和HTML編寫WEB頁面,當訪問者瀏覽到該頁面時,服務端會首先對頁面中的PHP命令進行處理,然后把處理后的結果連同HTML內容一起傳送到訪問端的瀏覽器。
#T#但是與ASP或ColdFusion不同,PHP是一種源代碼開放程序,擁有很好的跨平臺兼容性。用戶可以在Windows NT系統以及許多版本的Unix系統上運行PHP,而且可以將PHP作為Apache服務器的內置模塊或CGI程序運行。除了能夠精確的控制WEB頁面的顯示內容之外,用戶還可以通過使用PHP發送HTTP報頭。用戶可以通過PHP設置cookies,管理用戶身份識別,并對用戶瀏覽頁面進行重定向。PHP具有非常強大的數據庫支持功能,能夠訪問幾乎目前所有較為流行的數據庫系統。此外,PHP可以與多個外接庫集成,為用戶提供更多的實用功能,如生成PDF文件等。
用戶可以直接在WEB頁面中輸入PHP命令代碼,因而不需要任何特殊的開發環境。在WEB頁面中,所有PHP代碼都被放置在“”中。此外,用戶還可以選擇使用諸如 等的形式。PHP引擎會自動識別并處理頁面中所有位于PHP定界符之間的代碼。
PHP腳本語言的語法結構與C語言和Perl語言的語法風格非常相似。用戶在使用變量前不需要對變量進行聲明。使用PHP創建數組的過程也非常簡單。PHP還具有基本的面向對象組件功能,可以極大的方便用戶有效組織和封裝自己編寫的代碼。這里給大家介紹一下關于PHP上傳的問題。
例子1. 使文件PHP上傳生效
請查閱函數 is_uploaded_file() 和 move_uploaded_file() 以獲取進一步的信息。以下范例處理由表單提供的文件上傳。
- <?php
- // In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
- // of $_FILES.
- $uploaddir = '/var/www/uploads/';
- $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
- echo '<pre>';
- if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
- echo "File is valid, and was successfully uploaded.\n";
- } else {
- echo "Possible file upload attack!\n";
- }
- echo 'Here is some more debugging info:';
- print_r($_FILES);
- print "</pre>";
- ?>
接受PHP上傳文件的腳本為了決定接下來要對該文件進行哪些操作,應該實現任何邏輯上必要的檢查。例如可以用 $_FILES['userfile']['size'] 變量來排除過大或過小的文件,也可以通過 $_FILES['userfile']['type'] 變量來排除文件類型和某種標準不相符合的文件,但只把這個當作一系列檢查中的***步,因為此值完全由客戶端控制而在 PHP 端并不檢查。自 PHP 4.2.0 起,還可以通過 $_FILES['userfile']['error'] 變量來根據不同的錯誤代碼來計劃下一步如何處理。不管怎樣,要么將該文件從臨時目錄中刪除,要么將其移動到其它的地方。
如果表單中沒有選擇上傳的文件,則 PHP 變量 $_FILES['userfile']['size'] 的值將為 0,$_FILES['userfile']['tmp_name'] 將為空。如果該文件沒有被移動到其它地方也沒有被改名,則該文件將在表單請求結束時被刪除。

















