php中对上传到服务器的文件重命名

来源:互联网 发布:计算机编程学校 编辑:程序博客网 时间:2024/06/05 08:03
 

原代码:

$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']的

原创粉丝点击