使用PHP接受文件并獲得其后綴名的方法
HTML的form表單
用html的表單模擬一個文件上傳的post請求,代碼如下:
<!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'] : 客戶端機器文件的原名稱
- $_FILE['userfile']['type'] : 文件的MIME類型
- $_FILE['userfile']['size'] : 已上傳的文件大小
- $_FILE['userfile']['tmpname'] : 文件被上傳后在服務(wù)器存儲的臨時文件名
- $_FILE['userfile']['error'] : 和該文件上傳的錯誤代碼
思路
1、生成40位的隨機字符串作為文件名
2、根據(jù)文件是圖片還是語音轉(zhuǎn)存到不同的文件位置
3、暫時不做文件大小和文件類型的校驗
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é)果示例:

相關(guān)文章
php設(shè)計模式 Interpreter(解釋器模式)
php設(shè)計模式 Interpreter(解釋器模式),需要的朋友可以參考下。2011-06-06
也談php網(wǎng)站在線人數(shù)統(tǒng)計
db層: db_online.PHP //該函數(shù)使用戶自己在線,并且檢查其他用戶的在線情況2008-04-04
phpstorm 正則匹配刪除空行、注釋行(替換注釋行為空行)
這篇文章主要介紹了phpstorm 正則匹配刪除空行、注釋行,需要的朋友可以參考下2018-01-01
解決PHP4.0 和 PHP5.0類構(gòu)造函數(shù)的兼容問題
以下是對解決PHP4.0和PHP5.0類構(gòu)造函數(shù)兼容問題的方法進行了詳細的分析介紹,需要的朋友可以過來參考一下2013-08-08
php使用curl出現(xiàn)Expect:100-continue解決方法
這篇文章主要介紹了php使用curl出現(xiàn)Expect:100-continue解決方法,實例分析了Expect:100-continue出現(xiàn)的原理與解決方法,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03

