首頁  >  文章  >  後端開發  >  用PHP實作一個簡易版文件上傳功能(超詳細講解)

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

PHPz
PHPz轉載
2019-11-18 18:01:512906瀏覽

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

<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”傳輸方式為post

<?php
if(is_uploaded_file($_FILES[&#39;upfile&#39;][&#39;tmp_name&#39;])){
$upfile=$_FILES["upfile"];
$name=$upfile[&#39;name&#39;];
$tmp_name=$upfile["tmp_name"];//上传文件的临时存放路径
move_uploaded_file($tmp_name,&#39;up/&#39;.$name);
echo "上传成功";
}
else{
    echo "您还没有上传文件";
}
?>

關鍵字總結

is_uploaded_file 表示驗證檔案是否是透過HTTP POST 上傳的,條件成立才可以正常上傳

$_FILES['upfile']['tmp_name']) 表示取得到目前傳輸圖片的本機位置

move_uploaded_file($tmp_name,'up/'.$name); ,此方法有兩個參數,第一個為上傳的檔案的檔案名,第二個為移動檔案到這個位置

#2. 檔案的寫入與讀取

首先介紹寫入:

     $myfile = fopen("comment/" .time().&#39;-&#39;. rand(0, 1000) . ".comment", "a") or die("Unable to open file!");
        $txt = time().&#39;<br />&#39;;
        fwrite($myfile, $txt);
        fclose($myfile);

其中fopen函數的作用為寫入數據,第一個參數為寫入檔案具體路徑,第二個表示將讀取到得資料放入該檔案中,其中文件名採用時間戳加上隨機數構成,後綴名為comment,a表示寫入方式打開,將檔案指標指向檔案結尾。如果檔案不存在則嘗試建立它,or die表示執行失敗,就執行Unable to open file!(無法開啟檔案)。

第二句表示數據,數據可以是post傳輸的,也可以是get,隨意

第三句fwrite表示寫入文件,第一個參數為寫入文件的位置,第二個為要寫入的資料

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

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

以上是用PHP實作一個簡易版文件上傳功能(超詳細講解)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除