程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 教你使文件PHP上傳生效

教你使文件PHP上傳生效

編輯:關於PHP編程

PHP經過長時間的發展,很多用戶都很了解PHP了,這裡我發表一下個人理解,和大家討論討論。PHP是一種用於創建動態WEB頁面的服務端腳本語言。如同ASP 和ColdFusion,用戶可以混合使用PHP和HTML編寫WEB頁面,當訪問者浏覽到該頁面時,服務端會首先對頁面中的PHP命令進行處理,然後把處理後的結果連同HTML內容一起傳送到訪問端的浏覽器。

但是與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() 以獲取進一步的信息。以下范例處理由表單提供的文件上傳。

  1. <?php 
  2. // In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead  
  3. // of $_FILES.  
  4.  
  5. $uploaddir = '/var/www/uploads/';  
  6. $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);  
  7.  
  8. echo '<pre>';  
  9. if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {  
  10.    echo "File is valid, and was successfully uploaded.n";  
  11. } else {  
  12.    echo "Possible file upload attack!n";  
  13. }  
  14.  
  15. echo 'Here is some more debugging info:';  
  16. print_r($_FILES);  
  17.  
  18. print "</pre>";  
  19.  
  20. ?> 

接受PHP上傳文件的腳本為了決定接下來要對該文件進行哪些操作,應該實現任何邏輯上必要的檢查。例如可以用 $_FILES['userfile']['size'] 變量來排除過大或過小的文件,也可以通過 $_FILES['userfile']['type'] 變量來排除文件類型和某種標准不相符合的文件,但只把這個當作一系列檢查中的第一步,因為此值完全由客戶端控制而在 PHP 端並不檢查。自 PHP 4.2.0 起,還可以通過 $_FILES['userfile']['error'] 變量來根據不同的錯誤代碼來計劃下一步如何處理。不管怎樣,要麼將該文件從臨時目錄中刪除,要麼將其移動到其它的地方。

如果表單中沒有選擇上傳的文件,則 PHP 變量 $_FILES['userfile']['size'] 的值將為 0,$_FILES['userfile']['tmp_name'] 將為空。如果該文件沒有被移動到其它地方也沒有被改名,則該文件將在表單請求結束時被刪除。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved