用PHP實現一個簡易版文件上傳功能(超詳細講解)

 

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

 

1web

2數組

3函數

4post

<form action="" enctype="multipart/form-data" method="post" >spa

請選擇須要上傳的文件:<input type="file" name="upfile" /><br>3d

<input type="submit" value="上傳" />指針

</form>code

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

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表示寫入文件,第一個參數爲寫入文件的位置,第二個爲要寫入的數據

第四句表示關閉該文件,表示寫入完畢,本次執行完畢

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(表示換行,換成網頁中的換行)

相關文章
相關標籤/搜索