php中對上傳到伺服器的檔案重新命名
原始碼:
$path = './upfiles/'. $_FILES['file']['name'];
$filename = basename($path);// basename($path):返回上傳檔案的基本的檔名,如:檔名.doc
$actualname = $filename;
$extpos = strrpos($filename,'.');//返回字串filename中'.'號最後一次出現的數字位置
$ext = substr($filename,$extpos+1);
$studentid = $_SESSION['uid'];
$file = $userid.'.'.$ext;//$ext是獲取上傳檔案的字尾名,$file是新檔名(形式為$userid.字尾名)
接著呼叫move_uploaded_file($_FILES['file']['tmp_name'],$path)進行檔案上傳
增加功能:對上傳到伺服器的檔案進行重新命名。無論原檔案的名字是什麼,改後形式均為;$userid.字尾名
修改程式碼:
$path = './upfiles/'. $_FILES['file']['name'];
$filename = basename($path);// basename($path):返回基本的檔名,如:檔名.doc
$actualname = $filename;
$extpos = strrpos($filename,'.');//返回字串filename中'.'號最後一次出現的數字位置
$ext = substr($filename,$extpos+1);
$studentid = $_SESSION['uid'];
$file = $studentid.'.'.$ext;
$path = './upfiles/'.$userid.'.'.$ext;
總結:
$path = './upfiles/'. $_FILES['file']['name'];中$path構造了一個完整的路徑 你可以這樣理解 './upfiles/'是伺服器接受上傳檔案的資料夾 $_FILES['file']['name']是伺服器接受上傳檔案後將其儲存的檔名,這個整體構成了上傳檔案在伺服器的儲存路徑。
也就是說只要我修改了$path = './upfiles/'. $_FILES['file']['name'];裡的$_FILES['file']['name'],再呼叫move_uploaded_file($_FILES['file']['tmp_name'],$path)
時,就會把檔案移到$path指定的路徑下,新檔案的名字就是$path裡修改後的$_FILES['file']['name']的