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

利用文件函數實現PHP文件上傳案例分析

編輯:關於PHP編程

如果你是一個電腦愛好者,不知道PHP的話你就太落伍了,如果想知道PHP的相關知識,我們就一起來看看PHP文件上傳的實現吧。這段代碼分為兩個文件,一個為upload.html,一個是upload.php。

  1. <form enctype="multipart/form-data" action="upload.php" method="post"> 
  2. <input type="hidden" name="max_file_size" value="100000"> 
  3. <input name="userfile" type="file">  
  4. <input type="submit" value="上傳文件"> 
  5. </form> 

其中,請注意<form enctype="multipart/form-data"......>這是一個標簽,我們要實現文件的上傳,必須指定為multipart/form-data,否則服務器將不知道要干什麼。值得注意的是文件upload.html中表單選項 MAX_FILE_SIZE 的隱藏值域,通過設置其Value(值)可以限制上載文件的大小。MAX_FILE_SIZE 的值只是對浏覽器的一個建議,實際上它可以被簡單的繞過。因此不要把對浏覽器的限制寄希望於該值。實際上,PHP 設置中的PHP文件上傳最大值,是不會失效的。但是最好還是在表單中加上 MAX_FILE_SIZE,因為它可以避免用戶在花時間等待上傳大文件之後才發現該文件太大了的麻煩。

  1. upload.php  
  2. $f=&$HTTP_POST_FILES['Myfile'];  
  3. $dest_dir='uploads';//設定上傳目錄  
  4. $dest=$dest_dir.'/'.date("ymd")."_".$f['name'];//設置文件名為日期加上文件名避免重復  
  5. $r=move_uploaded_file($f['tmp_name'],$dest);  
  6. chmod($dest, 0755);//設定上傳的文件的屬性 

或者

  1. <?copy($_FILES[MyFile][tmp_name],$_FILES[MyFile][name]);?> 

以上范例中 $_FILES 數組的內容如下所示。我們假設文件上傳字段的名稱為 userfile(名稱可隨意命名)

  1. $_FILES['userfile']['name']//客戶端機器文件的原名稱。  
  2. $_FILES['userfile']['type'] //文件的 MIME 類型,需要浏覽器提供該信息的支持,例如“image/gif”。  
  3. $_FILES['userfile']['size']// 已上傳文件的大小,單位為字節。  
  4. $_FILES['userfile']['tmp_name'] //文件被上傳後在服務端儲存的臨時文件名。  
  5. $_FILES['userfile']['error'] //和該文件上傳相關的錯誤代碼 

PHP文件上傳值分析:
◆值:0; 沒有錯誤發生,文件上傳成功。
◆值:1; 上傳的文件超過了 php.ini 中 upload_max_filesize 選項限制的值。
◆值:2; 上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值。
◆值:3; 文件只有部分被上傳。
◆值:4; 沒有文件被上傳。


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