如何用 PHP 上傳檔案?
在免空網站常常看到的『上傳』功能,你是不是也想自己做一個呢?其實 PHP 製作上傳程式並不難,趕快跟著本文學吧~~
一、php.ini設定
上傳檔案前總要做些設定吧,以下列出幾個設定供參考:
- file_uploads:檔案上傳 ,設為 On (允許上傳)
- upload_max_filesize:上傳最大檔案大小,預設 2M ,建議不要太大
- max_execution_time:最大程式執行時間,預設為 30 秒
- max_input_time:接收資料時間限制,建議比 max_execution_time 大
- memory _limit:最大記憶體,必須比 upload_max_filesize 大,檔案上傳才不會出錯
- post_max_size:POST資料量限制,預設 8M,必須比 upload_max_filesize 大
二、建立上傳表單
新增一個檔案 index.html,平常看到的上傳按鈕就是用表單製作的,在這裡用POST方法傳遞給 upload.php 做處理
<form action="upload.php" enctype="multipart/form-data" method="post"> 選擇檔案:<input id="file" name="file" type="file"> <input id="submit" name="submit" type="submit" value="開始上傳"> </form>
三、新增資料夾
上傳之後的檔案要放在哪呢?就是放在現在要新增的資料夾裡囉!
新增『file』資料夾,權限必須設為 777
四、複製並儲存檔案
新增一個檔案為 upload.php,這個檔案用來複製、儲存檔案。
在這裡會用到 $_FILES陣列:
- $_FILES['file']['error']:上傳檔案的錯誤代碼,若為 0 則表示沒有錯誤
- $_FILES['file']['type']:檔案的 Mime 類型
- $_FILES['file']['size']:檔案大小,單位為 Byte
- $_FILES['file']['name']:檔案名稱
- $_FILES['file']['tmp_name']:檔案的暫存位置
首先,先驗證檔案是否上傳成功,如果出現錯誤則停止程式
<?php if($_FILES['file']['error']>0){ exit("檔案上傳失敗!");//如果出現錯誤則停止程式 } ?>
由於上傳的檔案只會暫存於系統上,程式執行完畢就會消失,所以必須複製到 file 資料夾儲存。
複製檔案用:move_uploaded_file(檔案位置,新位置)
<?php if($_FILES['file']['error']>0){ exit("檔案上傳失敗!");//如果出現錯誤則停止程式 } move_uploaded_file($_FILES['file']['tmp_name'],'file/'.$_FILES['file']['name']);//複製檔案 echo '<a href="file/'.$_FILES['file']['name'].'">file/'.$_FILES['file']['name'].'</a>';//顯示檔案路徑 ?>
來測試一下是不是能上傳
真的可以上傳耶!
在這裡只做基本的教學,等摸熟了你也可以嘗試增加大小、類型的限制...等喔~~~
檔案下載:https://gdsecret.com/img/wp/p1480/Php_Upload.zip
- 作者:secret
- 在 2013-03-10 發布
- 分類:PHP