文件上傳


<html>
 <head>
  <meta charset="utf-8" />
 </head>
 <body>
 <center>
  <form action="" method="POST" enctype="multipart/form-data" />
  名稱<input type="text" name="name" /><br>
  價格<input type="text" name="price" /><br>
  數量<input type="text" name="numb" /><br>
  圖片<input type="file" name="file" value="要上傳的圖片"/></br>
  <input type="submit" name="sub" value="提交" />
  </form>
  </center>
 </body>
</html>

<?php
if (!@$_POST['sub'] == '提交') {
 exit;
}
// $POST[]
// 接收文件的超全局變量
// $_FILES
// $POST['name']
// $POST['price']
// $POST['numb']
// 先簡單的判斷用戶是否點擊了提交
if ($_FILES['file']["error"] > 0) {
 switch ($_FILES['file']['error']) {
  case '1':
   echo "超出了最大限制";
   break;
  case '2':
   echo "超過了表單的最大限制";
   break;
  case '3':
   echo "文件上傳中斷";
   break;
  case '4':
   echo "文件上傳失敗(沒有被上傳)";
   break;
  case '5':
   echo '';
   break;
  case '6':
   echo "無法找到臨時目錄";
   break;
  case '7':
   echo "文件寫入失敗";
   break;
  default :
   echo "上傳文件出現了未知的錯誤";
   exit;
 }
 exit;
}
// 文件上傳錯誤檢驗完成//通過則執行下面的代碼
// 開始判斷要上傳的文件大小
if ($_FILES['file']["size"] > (4 * 1024 * 1024)) {
 echo "文件超過了最大限制的2m";
} ;
// 判斷文件類型//只允許圖片滴
$img_all = array('png', 'jpg', 'jpeg', 'gif', 'png', 'bmp', 'PNG');
$img_arr = explode('.', $_FILES['file']["name"]);
if (!in_array($img_all[count($img_arr)-1], $img_all)) { // 判斷文件是否周到支持
 echo "文件不支持";
 exit;
} else {
 // 將上傳的文件移動到制定的目錄中
 if (is_uploaded_file($_FILES['file']['tmp_name'])) { // 判斷是否是上傳的文件
  // 移動文件相當於重命名問及,所以用函數rename函數
  $new_file = 'image_users/' . sha1(date("YmdHis", time())) . "[" . md5(rand(1, 99)) . "]." . $img_arr[count($img_arr)-1]; //準備新文件的名字
  if (move_uploaded_file($_FILES['file']['tmp_name'], $new_file)) {
   echo "文件上傳成功";
  } else {
   echo "文件上傳失敗";
  }
  // ---------------------------------------
 }
} ;

?>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章