PHP $_FILES函數使用


轉載自 https://www.cnblogs.com/kenshinobiy/p/7783151.html

$_FILES參數詳解:
$_FILES["file"]["name"] – 被上傳文件的名稱
$_FILES["file"]["type"] – 被上傳文件的類型
$_FILES["file"]["size"] – 被上傳文件的大小,以字節計
$_FILES["file"]["tmp_name"] – 存儲在服務器的文件的臨時副本的名稱
$_FILES["file"]["error"] – 由文件上傳導致的錯誤代碼

$_FILES["file"]["error"]中的["error"]值情況:
UPLOAD_ERR_OK
0:沒有錯誤發生,文件上傳成功
UPLOAD_ERR_INI_SIZE
1:上傳的文件超過了 php.ini中upload_max_filesize(默認情況為2M) 選項限制的值
UPLOAD_ERR_FORM_SIZE
2:上傳文件的大小超過了 HTML表單中MAX_FILE_SIZE選項指定的值
UPLOAD_ERR_PARTIAL
3:文件只有部分被上傳
UPLOAD_ERR_NO_FILE
4:沒有文件被上傳
5:傳文件大小為0
下面我們就來看看最基本的文件上傳:

<html>
<body>
<form action=”upload-file.php” method=”post”
enctype=”multipart/form-data”>
<label for=”file”>文件名:</label>
<input type=”file” name=”file” id=”file” />
<br />
<input type=”submit” name=”submit” value=”提交” />
</form>
</body>
</html>

這個HTML頁面如下圖:

 

upload-file.php代碼如下:

<?php
if ($_FILES["file"]["error"] > 0)
  {
  echo “錯誤: ” . $_FILES["file"]["error"] . “<br />”;
  }
else
  {
  echo “文件名: ” . $_FILES["file"]["name"] . “<br />”;
  echo “類型: ” . $_FILES["file"]["type"] . “<br />”;
  echo “大小: ” . ($_FILES["file"]["size"] / 1024) . ” Kb<br />”;
  echo “存儲位置: ” . $_FILES["file"]["tmp_name"];
  }
?>

我們隨便上傳一個word文件,看看處理結果如何:

文件名: css.doc
類型: application/msword
大小: 81.5 Kb
存儲位置: C:\WINDOWS\temp\php7D.tmp

可以看到,這個文件被保存到C:\WINDOWS\temp\臨時目錄下,你可能想去看看在這個目錄是否存在這個文件,但結果是:沒有!為什么呢? 因為php在執行完這個腳本后,把它生成的文件又刪除了,所以在上傳之后還要進一步處理。另外還隨便提一下,在windows下,php所生成的臨時文件 如php7D.tmp是有規律的,也就是說在下一次通過表單上傳的文件應該像這樣:php7E.tmp
為了保存我們上傳的文件,要使用move_uploaded_file函數。在你的upload-file.php文件同目錄創建一個upload文件夾。下面再來看看上面那個示例:

<?php
if ($_FILES["file"]["error"] > 0)
  {
  echo “錯誤: ” . $_FILES["file"]["error"] . “<br />”;
  }
else
  {
  echo “文件名: ” . $_FILES["file"]["name"] . “<br />”;
  echo “類型: ” . $_FILES["file"]["type"] . “<br />”;
  echo “大小: ” . ($_FILES["file"]["size"] / 1024) . ” Kb<br />”; 
  }
 if (file_exists(”upload/” . $_FILES["file"]["name"]))
    {
      echo $_FILES["file"]["name"] . ” 文件已經存在. “;
    }
else
    {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      “upload/” . $_FILES["file"]["name"]);
      echo “文件已經被存儲到: ” . “upload/” . $_FILES["file"]["name"];
    }

 

?>

再來看看結果:

文件名: css.doc
類型: application/msword
大小: 81.5 Kb
文件已經被存儲到: upload/css.doc

經過這一步的處理,在我們所指定的地方(upload)就可以得到我們上傳的文件。到這里,最基本的文件上傳就結束了。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM