php上傳功能集后綴名判斷和隨機(jī)命名(強(qiáng)力推薦)
不廢話(huà)了,具體請(qǐng)看下文代碼示例講解。
form.php
<html> <head> <meta http-equiv="content-type" content="text/html" charset="utf-8"> <title>Upload Image</title> </head> <body> <form method="post" action="upload.php" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SEZE" value="2000000"> <input type="file" name="file" value="view"> <input type="submit" value="upload" name="B1"> </form> </body> </html>
upload.php
<?php include("check.php"); // 引入自定義函數(shù)文件 $type = array("jpg", "gif", "bmp", "jpeg", "png"); // 判斷上傳文件類(lèi)型 $fileext = strtolower(fileext($_FILES['file']['name'])); $uploadfilename = random(8); if(in_array($fileext, $type)){ $filename = explode(".", $_FILES['file']['name']); if(is_uploaded_file($_FILES['file']['tmp_name'])){ // echo $_FILES['file']['tmp_name']; $flag = move_uploaded_file($_FILES['file']['tmp_name'], "/Library/WebServer/Documents/test/".$uploadfilename.".".$fileext); if($flag){ echo "上傳成功!"; }else{ echo "Error."; } echo "<a href='javascript:history.go(-1)'>Back</a>"; } }
check.php
<?php header("Content-type:text/html;charset=utf8"); // 獲取文件后綴名函數(shù) function fileext($filename){ $sTemp = strrchr($filename, "."); return substr($sTemp, 1); } function fileext2($filename){ $sTemp = explode(".", $filename); return $sTemp[count($sTemp)-1]; } // 生成隨機(jī)文件名函數(shù) function random($length){ $captchaSource = "0123456789abcdefghijklmnopqrstuvwxyz這是一個(gè)隨機(jī)打印輸出字符串的例子"; $captchaResult = "2015"; // 隨機(jī)數(shù)返回值 $captchaSentry = ""; // 隨機(jī)數(shù)中間變量 for($i=0;$i<$length;$i++){ $n = rand(0, 35); #strlen($captchaSource)); if($n >= 36){ $n = 36 + ceil(($n-36)/3) * 3; $captchaResult .= substr($captchaSource, $n, 3); }else{ $captchaResult .= substr($captchaSource, $n, 1); } } return $captchaResult; } ?>
將三個(gè)文件整合成一個(gè):
<?php // 獲取文件后綴名函數(shù) function fileext($filename){ $sTemp = strrchr($filename, "."); return substr($sTemp, 1); } function fileext2($filename){ $sTemp = explode(".", $filename); return $sTemp[count($sTemp)-1]; } // 生成隨機(jī)文件名函數(shù) function random($length){ $captchaSource = "0123456789abcdefghijklmnopqrstuvwxyz這是一個(gè)隨機(jī)打印輸出字符串的例子"; $captchaResult = "2015"; // 隨機(jī)數(shù)返回值 $captchaSentry = ""; // 隨機(jī)數(shù)中間變量 for($i=0;$i<$length;$i++){ $n = rand(0, 35); #strlen($captchaSource)); if($n >= 36){ $n = 36 + ceil(($n-36)/3) * 3; $captchaResult .= substr($captchaSource, $n, 3); }else{ $captchaResult .= substr($captchaSource, $n, 1); } } return $captchaResult; } $type = array("jpg", "gif", "bmp", "jpeg", "png"); // 判斷上傳文件類(lèi)型 $fileext = strtolower(fileext($_FILES['file']['name'])); $uploadfilename = random(8); if(in_array($fileext, $type)){ $filename = explode(".", $_FILES['file']['name']); if(is_uploaded_file($_FILES['file']['tmp_name'])){ // echo $_FILES['file']['tmp_name']; $flag = move_uploaded_file($_FILES['file']['tmp_name'], "/Library/WebServer/Documents/test/".$uploadfilename.".".$fileext); if($flag){ echo "上傳成功!"; }else{ echo "Error."; } echo "<a href='javascript:history.go(-1)'>Back</a>"; } } ?> <html> <head> <meta http-equiv="content-type" content="text/html" charset="utf-8"> <title>Upload Image</title> </head> <body> <form method="post" action="" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SEZE" value="2000000"> <input type="file" name="file" value="view"> <input type="submit" value="upload" name="B1"> </form> </body> </html>
以上內(nèi)容就是給大家講解的php上傳功能集后綴名判斷和隨機(jī)命名(強(qiáng)力推薦),希望大家喜歡。
相關(guān)文章
PHP數(shù)組 為文章加關(guān)鍵字連接 文章內(nèi)容自動(dòng)加鏈接
PHP給文章加關(guān)鍵字連接,像163文章內(nèi)容自動(dòng)加鏈接效果,其實(shí)很多php網(wǎng)站管理系統(tǒng)里面都有,可以參考里面的代碼。2011-12-12PHP實(shí)現(xiàn)mysqli批量執(zhí)行多條語(yǔ)句的方法示例
這篇文章主要介紹了PHP實(shí)現(xiàn)mysqli批量執(zhí)行多條語(yǔ)句的方法,結(jié)合實(shí)例形式分析了php連接mysqli并批量執(zhí)行多條語(yǔ)句的相關(guān)操作技巧,需要的朋友可以參考下2017-07-07PHP 數(shù)組操作詳解【遍歷、指針、函數(shù)等】
這篇文章主要介紹了PHP 數(shù)組操作,結(jié)合實(shí)例形式詳細(xì)分析了PHP數(shù)組遍歷、指針、數(shù)組常用函數(shù)等相關(guān)原理、使用技巧與操作注意事項(xiàng),需要的朋友可以參考下2020-05-05PHP采用XML-RPC構(gòu)造Web Service實(shí)例教程
這篇文章主要介紹了PHP采用XML-RPC構(gòu)造Web Service,需要的朋友可以參考下2014-07-07php中time()與$_SERVER[REQUEST_TIME]用法區(qū)別
這篇文章主要介紹了php中time()與$_SERVER[REQUEST_TIME]用法區(qū)別,詳細(xì)分析了time()與$_SERVER[REQUEST_TIME]的用法,并以實(shí)例形式對(duì)比總結(jié)了二者在獲取當(dāng)前系統(tǒng)時(shí)間戳與請(qǐng)求時(shí)間戳的區(qū)別,需要的朋友可以參考下2014-11-11php程序的國(guó)際化實(shí)現(xiàn)方法(利用gettext)
這里我們主要介紹window平臺(tái)下使用php的擴(kuò)展gettext實(shí)現(xiàn)程序的國(guó)際化。2011-08-08- 在所有的最簡(jiǎn)單的程序中,大多數(shù)對(duì)象都有一個(gè)標(biāo)識(shí),一個(gè)重要的商業(yè)應(yīng)用對(duì)象,例如一個(gè)Customer或者一個(gè)SKU,有一個(gè)或者更多的屬性---id,name,email地址,這樣可以把它從同一個(gè)類(lèi)的其他實(shí)例區(qū)分開(kāi)來(lái)。此外,對(duì)象有一個(gè)恒定的標(biāo)識(shí):它是貫穿于整個(gè)應(yīng)用程序的一個(gè)唯一的標(biāo)識(shí),對(duì)于程序員來(lái)說(shuō),”customer A”在任何地方就是”customer A”,并且只要你的程序在持續(xù)運(yùn)行時(shí)"customer A"仍然是"customer A"。 但是一個(gè)對(duì)象不需要有一個(gè)標(biāo)識(shí)。有些對(duì)象僅僅是為了描述其他對(duì)象的屬性。2008-04-04