簡易版php文件上傳_超詳細詳解

 

1.php簡化版的圖片上傳(沒有各類驗證)

1
2
3
4
<form action = "" enctype = "multipart/form-data" method = "post"  >
        請選擇須要上傳的文件: <input type = "file" name = "upfile"  /><br >
         <input type = "submit" value = "上傳"  />
</form >

首先咱們須要在form表單中加入 enctype=」multipart/form-data」表示聲明表單中會有圖片發送, action=」」 表示當前頁面提交,method=」post」傳輸方式爲postphp

1
2
3
4
5
6
7
8
9
10
11
12
<?php
if ( is_uploaded_file ( $_FILES [ 'upfile' ] [ 'tmp_name' ] ) ) {
$upfile = $_FILES [ "upfile" ] ;
$name = $upfile [ 'name' ] ;
$tmp_name = $upfile [ "tmp_name" ] ; //上傳文件的臨時存放路徑
move_uploaded_file ( $tmp_name , 'up/' . $name ) ;
echo  "上傳成功" ;
}
else {
     echo  "您尚未上傳文件" ;
}
?>

關鍵詞總結
is_uploaded_file 表示驗證文件是不是經過 HTTP POST 上傳的,條件成立才能夠正常上傳
$_FILES[‘upfile’][‘tmp_name’]) 表示獲取到當前傳輸圖片的本地位置
move_uploaded_file($tmp_name,’up/’.$name); ,該方法有兩個參數,第一個爲上傳的文件的文件名,第二個爲移動文件到這個位置數組

2. 文件的寫入與讀取
首先介紹寫入:函數

1
2
3
4
         $myfile  =  fopen ( "comment/"  . time ( ) . '-' .  rand ( 0 ,  1000 )  .  ".comment" ,  "a" ) or  die ( "Unable to open file!" ) ;
         $txt  =  time ( ) . '<br />' ;
         fwrite ( $myfile ,  $txt ) ;
         fclose ( $myfile ) ;

其中fopen函數的做用爲寫入數據,第一個參數爲寫入文件具體路徑,第二個表示將讀取到得數據放入該文件中,其中文件名採用時間戳加上隨機數構成,後綴名爲comment,a表示寫入方式打開,將文件指針指向文件末尾。若是文件不存在則嘗試建立它,or die表示執行失敗,就執行Unable to open file!(沒法打開文件)。
第二句表示數據,數據能夠是post傳輸的,也能夠是get,隨意
第三句fwrite表示寫入文件,第一個參數爲寫入文件的位置,第二個爲要寫入的數據
第四句表示關閉該文件,表示寫入完畢,本次執行完畢post

1
2
3
4
5
6
7
8
9
10
$list  =  glob ( "comment/*.comment" ) ;
rsort ( $list ) ;
for  ( $i  =  0 ;  count ( $list )  >  $i ;  $i ++ )  {
     $file_path  =  $list [ $i ] ;
     if  ( file_exists ( $file_path ) )  {
         $fp  =  fopen ( $file_path ,  "r" ) ;
         $str  =  fread ( $fp ,  filesize ( $file_path ) ) ; //指定讀取大小,這裏把整個文件內容讀取出來
         echo  $str  =  str_replace ( "\r\n" ,  "<br />" ,  $str ) ;
     }
}

在介紹讀取:

關鍵語句爲

第一句:首先使用(glob)先找到須要讀取的文件,若是有不少符合條件的文件,那麼他們將會使用數組進行保存,讀取的時候使用遍歷數組就能夠了
第二句: rsort爲降序排序,主要是爲了知足特定條件下的排序,例如按照發布時間
第三句:由於能夠經過var_dump,print等知道glob是以數組的形式保存路徑的,因此咱們使用count算出總數,而後一條條遍歷,即可以獲得須要讀取的文件路徑
第四句:$file_path獲取文件路徑
第五句:file_exists判斷文件是否存在
第六句:fopen讀取該文件,而且以只讀的方式打開
第七句:fread第一個參數表示讀取的東西,第二個表示讀取的文件的大小,這裏也就表示有多少讀多少
第八句:str_replace替換函數,表示將$str中的全部的\r\n都替換成br(表示換行,換成網頁中的換行)spa

相關文章
相關標籤/搜索