欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP學(xué)習(xí)文件處理與文件上傳 課件第2/2頁(yè)

 更新時(shí)間:2008年06月15日 13:05:04   作者:  
主要包括php文件處理,文件的處理,文件指針相關(guān)處理函數(shù),文件控制函數(shù)

DirectoryIterator自定義的類
getATime ():文件最后訪問(wèn)時(shí)間
getCTime ():文件最后的修改時(shí)間
getGroup ():文件所屬組(僅UNIX)
getInode ():文件的節(jié)點(diǎn)(僅UNIX)
getOwner ():文件的宿主(僅UNIX)
getPerms ():訪問(wèn)該文件的權(quán)限
getSize ():文件的大小
getType ():文件的類型
getFileName ():文件的名稱
getPath ():文件的路徑
isDir ():是否是目錄
isExecutable ():是否可以執(zhí)行
isFile ():是否是文件
isLink ():是否是軟鏈接文件
isReadable ():是否可讀
isWritable ():是否可寫
isDot ()方法分別過(guò)濾掉“.”和“..”目錄。


$dname=$_GET["dname"];    //獲取from表的信息
  if(isset($dname)&&!empty($dname)){  //判斷變量是否被設(shè)置 檢測(cè)一個(gè)變量是否為空
    $dir=new DirectoryIterator("{$dname}");    //new一個(gè)類
    echo $dir->getPath()."      //類的方法
  }else{
    $dir=new DirectoryIterator("D:\\");  //new d://目錄
    echo $dir->getPath();
  }
  $delname=$_GET["del"];    
  if(isset($delname)&&!empty($delname)){
    if(unlink("{$dir->getPath()}\\$delname"))
      echo "刪除成功";
  }

  while($dir->valid()){
    if($dir->isDir())
      echo "<a href='file14.php?dname={$dir->getPath()}\\{$dir->current()}'>".
      "{$dir->current()}</a><br>";
    else
       echo "{$dir->current()} <a href='#'>復(fù)制</a>".
      " <a href='file14.php?del={$dir->current()}'>刪除</a><br>";
    $dir->next();
  }

范例2:function showdir($iter){    //設(shè)置一個(gè)函數(shù)方法 并賦值
    for(;$iter->valid();$iter->next()){  //檢測(cè)目錄是否還有下一個(gè)目錄  想下移動(dòng)一位
      if($iter->isDir() && $iter->isDot()){//檢測(cè)是否是目錄 并過(guò)濾掉.和..目錄位置
        echo "目錄".$iter->current()."<br>";  //指向返回列表元素的值
      }else{
        echo $iter->current().$iter->getSize()."字節(jié)<br>"; 反則 返回列表的值 并查看文件大小
      }
    }
  }
  showdir(new DirectoryIterator("C:/")); //傳參 new一個(gè)系統(tǒng)默認(rèn)類
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

      PHP文件上傳
  與文件系統(tǒng)和服務(wù)器的交互
文件上傳`使用目錄函數(shù) `與文件系統(tǒng)的交互`使用程序執(zhí)行函數(shù)`與環(huán)境變量交互


文件上傳
在B/S程序中文件上傳已經(jīng)成為一個(gè)常用功能。其目的是客戶可以通過(guò)瀏覽器(Browser)將文件上傳到服務(wù)器(Server)上的指定目錄
PHP中文件上傳的基礎(chǔ)知識(shí)
表單提交`對(duì)文件的操作

何為文件上傳?
為了滿足傳遞文件信息的需要:HTTP協(xié)議實(shí)現(xiàn)了文件上傳機(jī)制,從而可以將客戶端的文件通過(guò)自己的瀏覽器上傳到服務(wù)器上指定目錄存放。



HTML規(guī)范規(guī)定上傳文件時(shí)表單頭必須使用
<html>
<head><title>文件上傳</title></head>
<body>
<form action="todo.php" method="post" enctype="multipart/form-data"> //返回值  post 方式上傳  表示要上傳一個(gè)文件
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
上傳文件:<input type="file" name="userfile">
提交:<input type="submit" value="提交查詢">
</form>
</body>
</html>
注意幾個(gè)特征屬性:
POST方法:
表單最常用的功能,向目標(biāo)頁(yè)面?zhèn)鬟f變量,我們?cè)谏蟼魑募臅r(shí)候,會(huì)在表單中設(shè)置相應(yīng)的屬性,來(lái)完成文件的傳遞.
enctype="multipart/form-data"
這樣服務(wù)器就會(huì)知道,我們要傳遞一個(gè)文件,這樣服務(wù)器可以知道上載的文件帶有常規(guī)的表單信息。
MAX_FILE_SIZE
此字段必須在文件輸入字段之前,控制最大的傳遞文件的大小(字節(jié)) ——真的可以控制嗎?
<input type="file" name="userfile">
設(shè)置瀏覽器文件輸入瀏覽按鈕

我們?cè)诜?wù)器端的php.ini中設(shè)置對(duì)表單傳遞的數(shù)據(jù)進(jìn)一步判斷
file_uploads = On /Off 是否允許文件上傳
upload_max_filesize = 2M 上傳的文件的最大大小
post_max_size = 8M  POST數(shù)據(jù)所允許的最大大小
表單傳遞的數(shù)據(jù),文件只是其中的一部分,所以設(shè)置時(shí),upload_max_filesize應(yīng)該小于post_max_size


    超級(jí)全局?jǐn)?shù)組$_FILES
PHP程序中,需要處理的上傳數(shù)據(jù)保存在全局?jǐn)?shù)組中$_FILES(超級(jí)全局?jǐn)?shù)組)
保存$_FILES數(shù)組中的元素,將HTML表單的type="file"標(biāo)記的名稱name="userfile" 存放在數(shù)組中。
存儲(chǔ)在$_FILES['userfile']['name']中的值是:客戶端文件系統(tǒng)的文件的名稱
存儲(chǔ)在$_FILES['userfile']['type']中的值是:客戶端傳遞的文件的類型
存儲(chǔ)在$_FILES['userfile']['size']中的值是:文件的字節(jié)的大小
存儲(chǔ)在$_FILES['userfile']['tmp_name']中的值:文件被上傳后在服務(wù)器存儲(chǔ)的臨時(shí)全路徑
```````````````````````````````````````````
存儲(chǔ)在$_FILES['userfile']['error']中的值是:文件上傳的錯(cuò)誤代碼-php 4.2以后增加的功能
存儲(chǔ)在$_FILES['userfile']['error']中的值
值為0:表示沒(méi)有發(fā)生任何錯(cuò)誤。
值為1:表示上傳文件的大小超出了約定值。文件大小的最大值是在PHP配置文件中指定的,該指令是:upload_max_filesize。
值為2:表示上傳文件大小超出了HTML表單隱藏域?qū)傩缘腗AX_FILE_SIZE元素所指定的最大值。
值為3:表示文件只被部分上傳。
值為4:表示沒(méi)有上傳任何文件。
````````````````````````````````````
is_uploaded_file( )檢測(cè)是否是上傳文件
move_uploaded_file(臨時(shí)路徑/臨時(shí)文件名,目的路徑/目的文件名 ) 函數(shù)將存放在臨時(shí)目錄下的上傳文件拷貝出來(lái),存放到指定目錄的指定文件名,如果目標(biāo)存在將會(huì)被覆蓋。
范例:print_r($_FILES["upfile"]);//將表單提交的系統(tǒng)存放在這
  echo "文件名字".$_FILES["upfile"]["name"];//文件名字
  if($_FILES["upfile"]["error"]<=1){//錯(cuò)誤代碼小于1  大于1表示有錯(cuò)誤
    echo "請(qǐng)選擇文件";
  }
  if(is_uploaded_file($_FILES["upfile"]["tmp_name"])){//檢測(cè)這個(gè)文件是否是上傳文件  文件的臨時(shí)路徑
    echo '是上傳文件';
    move_uploaded_file($_FILES["upfile"]["tmp_name"],"./upload/".$_FILES["upfile"]["name"]);
    //將臨時(shí)文件轉(zhuǎn)移到upload目錄 文件名 為原名
  }else{
    echo '不是上傳文件';
  }
文件上傳后的臨時(shí)存放目錄

上傳的文件被放置到服務(wù)器端臨時(shí)目錄:/tmp目錄里面 命名為一個(gè)唯一的,隨機(jī)生成的臨時(shí)文件名。 注:該文件在程序執(zhí)行完后將自動(dòng)被刪除掉。在刪除前可以像本地文件一樣操作。
/tmp目錄是默認(rèn)的上傳臨時(shí)文件存放地點(diǎn), 如果需要更改這個(gè)目錄: 可以編輯/etc/php.ini 文件File Uploads 段的upload_tmp_dir  屬性值。
當(dāng)配置文件php.ini的register_globals屬性被設(shè)置成on的情況
<input type=file name=myfilename>
將生成全局變量:$myfilename等 

```````````````````````````````````````````````
當(dāng)需要上傳多個(gè)文件的情況,有兩種實(shí)現(xiàn)的解決方法:
使用不同的表單元素
<input type=file name=file_a>
<input type=file name=file_b>
使用數(shù)組格式的表單元素
<input type=file name=file[1]>
<input type=file name=file[2]>
`````````````````````````````````````````````````
使用目錄函數(shù)
opendir?--?打開(kāi)目錄句柄
closedir?--?關(guān)閉目錄句柄 
readdir?--?從目錄句柄中讀取條目 
語(yǔ)法格式:$d=opendir("./upload"); //打開(kāi)這個(gè)文件目錄
  while($s=readdir($d)){  //循環(huán)輸出讀取到的條目
    echo $s."<br>";
  }
  closedir($d);  //關(guān)閉句柄

創(chuàng)建和修改目錄
mkdir?--?新建目錄 
rmdir?--?刪除目錄 
mkdir("D:\\up");//創(chuàng)建一個(gè)目錄
rmdir("up");//刪除一個(gè)目錄

磁盤操作
disk_free_space():統(tǒng)計(jì)某個(gè)磁盤的剩余空間
disk_total_space():顯示邏輯磁盤的容量
echo disk_free_space("D:\\")/1024/1024/1024;
echo disk_total_space("D:\\")/1024/1024/1024;
getcwd():返回當(dāng)前腳本所在路徑
chdir():類似DOS的cd命令,改變當(dāng)前路徑
echo getcwd();//查看當(dāng)前腳本路徑
chdir("D:\\");//改變

使用程序執(zhí)行函數(shù)
exec( ) 函數(shù)可以將要執(zhí)行的命令作為參數(shù)。
passthru( ) 結(jié)果直接輸出顯示到瀏覽器。
system( )也是直接輸出顯示到瀏覽器,但有返回值

phpchana 課件
php文件處理.rar

相關(guān)文章

最新評(píng)論