php上傳功能集后綴名判斷和隨機(jī)命名(強(qiáng)力推薦)
不廢話了,具體請(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");
// 判斷上傳文件類型
$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");
// 判斷上傳文件類型
$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í)現(xiàn)的服務(wù)器一致性hash分布算法示例
這篇文章主要介紹了PHP實(shí)現(xiàn)的服務(wù)器一致性hash分布算法,結(jié)合實(shí)例形式分析了php一致性hash分布算法類的具體定義與相關(guān)使用技巧,需要的朋友可以參考下2018-08-08
PHP設(shè)計(jì)模式 注冊(cè)表模式(多個(gè)類的注冊(cè))
注冊(cè)表模式其實(shí)是一個(gè)單例模式,注冊(cè)表類提供靜態(tài)方法(或單例對(duì)象的實(shí)例化方法)來(lái)讓其它對(duì)象訪問(wèn)其中的數(shù)據(jù)(通常是對(duì)象)。整個(gè)系統(tǒng)中的每個(gè)對(duì)象都可以訪問(wèn)這些數(shù)據(jù)對(duì)象2012-02-02
PHP遞歸實(shí)現(xiàn)無(wú)限級(jí)分類的代碼示例
無(wú)限級(jí)分類是一種對(duì)商品或信息進(jìn)行分類的方式,在這種分類方式中,每個(gè)分類都可以再次細(xì)分出更多的子分類,形成無(wú)限的級(jí)別,本文給大家介紹了如何使用PHP遞歸實(shí)現(xiàn)無(wú)限級(jí)分類,文中有詳細(xì)的代碼示例,需要的朋友可以參考下2023-10-10
php實(shí)現(xiàn)猴子選大王問(wèn)題算法實(shí)例
這篇文章主要介紹了php實(shí)現(xiàn)猴子選大王問(wèn)題算法,實(shí)例分析了算法的原理與解決方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04
PHP中SESSION使用中的一點(diǎn)經(jīng)驗(yàn)總結(jié)
最近在網(wǎng)上的交流中發(fā)現(xiàn)大家對(duì)SESSION的使用上有很多誤區(qū),本質(zhì)上就是不了解SESSION的工作原理2012-03-03
php類自動(dòng)加載器實(shí)現(xiàn)方法
這篇文章主要介紹了php類自動(dòng)加載器實(shí)現(xiàn)方法,涉及php針對(duì)文件的讀取、判斷及字符串操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
PHP采集靜態(tài)頁(yè)面并把頁(yè)面css,img,js保存的方法
這篇文章主要介紹了PHP采集靜態(tài)頁(yè)面并把頁(yè)面css,img,js保存的方法,可以實(shí)現(xiàn)簡(jiǎn)單的網(wǎng)頁(yè)抓取功能,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12

