返回列表 發帖

加了限制的檔案上傳程式 file_upload2.php

  1. <html>
  2.     <head>
  3.         <title>檔案上傳</title>
  4.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5.     </head>
  6.     <body>
  7.         <form action="" method="post" enctype="multipart/form-data">
  8.             請選擇上傳的圖片:<input type="file" name="file_input" /><br />
  9.             <input type="submit" name="send" value="送出" />
  10.         </form>
  11.         <?php
  12.             $upload_dir = './photo/';    //檔案上傳的目錄
  13.             $size_limit = 5*1024*1024*1024; //5GB
  14.             $arr_ext = array('.jpg', '.png', '.bmp', '.gif', '.tif', '.pcx', '.psd');    //設定允許上傳的副檔名
  15.             if(isset($_POST['send'])){    //判斷是否按下送出鈕, 且 $_POST['send'] 有值
  16.                 $file_name = $_FILES['file_input']['name']; //取得檔案的名稱
  17.                 $file_type = $_FILES['file_input']['type']; //取得檔案類型
  18.                 $file_size = $_FILES['file_input']['size']; //取得檔案大小
  19.                 $tmp_name = $_FILES['file_input']['tmp_name']; //取得檔案暫存路徑
  20.                 $ext = strrchr($file_name, '.'); //取得副檔名
  21.                 /*echo $file_name.'<br />';
  22.                 echo $file_type.'<br />';
  23.                 echo $file_size.'<br />';
  24.                 echo $tmp_name;*/
  25.                 if(!is_uploaded_file($tmp_name)){//判斷使用者是否正常方式上傳
  26.                     echo '上傳失敗,沒有選取上傳檔案。';
  27.                 }else if($file_size > $size_limit){    //若使用者上傳的檔案大小大於設定值時
  28.                     echo '檔案太大。';
  29.                 }else if(!in_array($ext, $arr_ext)){    //判斷 $ext 是否在 $arr_ext陣列裡
  30.                     echo '上傳失敗,只允許 '.implode(',', $arr_ext).' 副檔名';
  31.                 }else if(move_uploaded_file($tmp_name, $upload_dir.$file_name)){//檢查上傳狀態
  32.                     echo '上傳成功';
  33.                 }else{
  34.                     echo '上傳失敗';
  35.                 }
  36.             }
  37.             
  38.         ?>
  39.     </body>
  40. </html>
複製代碼
May

返回列表