谁能帮我解决以下问题?这是问题:在一个表单POST我让人们可以上传文件.下面的代码检查"uploads"文件夹中是否有另一个具有相同名称的文件.如果是这样,文件将重命名为此示例:
hallo.txt
1_hallo.txt
2_hallo.txt
Run Code Online (Sandbox Code Playgroud)
... 等等.
这是使用的代码:
$OriginalFilename = $FinalFilename = $_FILES['uploaded']['name'];
// rename file if it already exists by prefixing an incrementing number
$FileCounter = 1;
while (file_exists( 'uploads/'.$FinalFilename ))
$FinalFilename = $FileCounter++.'_'.$OriginalFilename;
Run Code Online (Sandbox Code Playgroud)
我想以不同的方式重命名文件.渐进数字应该在文件之后,当然,在扩展之前.这是之前的例子,但是我想要的方式:
hallo.txt
hallo_1.txt
hallo_2.txt
Run Code Online (Sandbox Code Playgroud)
... 等等.
如何修改代码以达到该结果?提前谢谢,抱歉我的新手式问题.我真的是新手!:)
垫
只需改变$FinalFilename:
$FinalFilename = pathinfo($OriginalFilename, PATHINFO_FILENAME) . '_' . $FileCounter++ . '.' . pathinfo($OriginalFilename, PATHINFO_EXTENSION);
Run Code Online (Sandbox Code Playgroud)
或者(如果你有很多具有相同名称的文件并经常迭代多次,那就更好了):
$filename = pathinfo($OriginalFilename, PATHINFO_FILENAME);
$extension = pathinfo($OriginalFilename, PATHINFO_EXTENSION);
while (file_exists( 'uploads/'.$FinalFilename ))
$FinalFilename = $filename . '_' . $FileCounter++ . '.' . $extension;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3558 次 |
| 最近记录: |