溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何使用PHP接受文件并獲得其后綴名

發(fā)布時(shí)間:2021-08-04 10:25:28 來(lái)源:億速云 閱讀:122 作者:chen 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要講解了“如何使用PHP接受文件并獲得其后綴名”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“如何使用PHP接受文件并獲得其后綴名”吧!

HTML的form表單
用html的表單模擬一個(gè)文件上傳的post請(qǐng)求,代碼如下:

  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
  <html> 
  <head> 
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
  <title>File Upload</title> 
  </head> 
  <body> 
   
  <form enctype="multipart/form-data" action="test.php" method="POST"> 
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" /> 
    Send this File:<input name="userfile" type="file"/> 
    <input type="submit" value="Send File" /> 
  </form> 
   
   
  </body> 
  </html>


注意:

要確保文件上傳表單的屬性是 enctype="multipart/form-data",否則文件上傳不了


PHP
首先,需要解釋一下PHP的全局變量$_FILES,此數(shù)組包含了所有上傳的文件信息

  • $_FILE['userfile']['name'] : 客戶端機(jī)器文件的原名稱

  • $_FILE['userfile']['type'] : 文件的MIME類(lèi)型

  • $_FILE['userfile']['size'] : 已上傳的文件大小

  • $_FILE['userfile']['tmpname'] : 文件被上傳后在服務(wù)器存儲(chǔ)的臨時(shí)文件名

  • $_FILE['userfile']['error'] : 和該文件上傳的錯(cuò)誤代碼


思路
1、生成40位的隨機(jī)字符串作為文件名
2、根據(jù)文件是圖片還是語(yǔ)音轉(zhuǎn)存到不同的文件位置
3、暫時(shí)不做文件大小和文件類(lèi)型的校驗(yàn)

  function processFile($files, $type) { 
    $uploadName = null; 
    foreach ($files as $name => $value) { 
      $originalName = $value['name']; 
      $arr = explode(".", $originalName); 
      $postfix = $arr[count($arr) - 1]; 
      $tmpPath = $value['tmp_name']; 
      $tmpType = $value['type']; 
      $tmpSize = $value['size']; 
    } 
     
    $newname = EhlStaticFunction::generateRandomStr(40).".".$postfix; 
     
    switch ($type) { 
      case 1 :  
        // 處理聲音文件 
        $destination = VIDEOUPLOADDIR.$newname; 
        break; 
      case 2 : 
        // 處理圖像文件 
        $destination = IMAGEUPLOADDIR.$newname; 
        break; 
    } 
     
    move_uploaded_file($tmpPath, $destination); 
  }

而獲取所上傳文件的后綴名則可以使用一下代碼:

HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title></title>
  <meta name="keywords" content=" keywords" />
  <meta name="description" content="description" />
</head>
<body>
  <form method="post" action="" enctype="multipart/form-data">
  <input type="file" name="upfile" size="20" />
  <input type="submit" name="submit" value="submit" />
  </form>
</body>
</html>


PHP

<?PHP
  if(isset($_POST['submit'])) {
    $string = strrev($_FILES['upfile']['name']);
    $array = explode('.',$string);
    echo $array[0];
  }  
?>

結(jié)果示例:

如何使用PHP接受文件并獲得其后綴名

感謝各位的閱讀,以上就是“如何使用PHP接受文件并獲得其后綴名”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)如何使用PHP接受文件并獲得其后綴名這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI