iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 28
0
自我挑戰組

大學 50 萬貸款的交代系列 第 28

Day 28 PHP 上傳檔案

  • 分享至 

  • xImage
  •  

關於 PHP 上傳檔案這件事情有很多東西可以討論,像是篩選上傳的檔案格式、檔案大小...之類的。在 Day 29 我們要討論一句話木馬的運作原理,所以要先了解 PHP 怎麼上傳檔案。
其實是快想不到要寫什麼了

直接動手吧

首先我們先準備一個上傳檔案的表單

<form action='upload.php' method='post' enctype='multipart/form-data'>
    <input type='file' name='file'><br>
    <input type='submit'>
</form>

這樣就完成簡易的表單了,接著要完成接收表單的 PHP

<?php

if($_FILES['file']['error'] === UPLOAD_ERR_OK){
echo 'Name: '.$_FILES['file']['name'];
echo '<br>Type: '.$_FILES['file']['type'];
echo '<br>Size: '.$_FILES['file']['size'];
echo '<br>TmpName: '.$_FILES['file']['tmp_name'];

move_uploaded_file($_FILES['file']['tmp_name'],'upload/'.$_FILES['file']['name']);
}

?>

這樣可以觀察上傳檔案的一些屬性,於是我們上傳一個檔案試試看

這樣檔案就上傳完成囉

解釋一下程式碼,檔案是以 Post 方式送到 PHP ,但是 PHP 接收檔案會使用 $_FILES 這個變數。以陣列的方式紀錄收到的資料的資訊,上面那些陣列的 Key 值應該都滿明顯的。

值得一提的是,PHP 上傳的時候有一個機制。會先把上傳的檔案放到 temp 這個資料夾中,等 PHP 執行結束後會被刪除。因此,如果需要保留檔案,就需要使用到 move_uploaded_file() 這個方法。

另外,也可以使用 file_exists() 這個方法檢查檔案是否已經存在,否則如果有相同檔案名稱的檔案會被覆蓋掉的喔。


上一篇
Day 27 封包側錄簡介
下一篇
Day 29 開門 ~ 一句話木馬 (*´∀`)~♥
系列文
大學 50 萬貸款的交代30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言