php实现上传附件并保持上传文件名,可上传多次同名文件代码
时间: 2024-02-18 17:03:14 浏览: 28
下面是 PHP 实现上传附件并保持上传文件名,可上传多次同名文件的代码:
```php
<?php
if ($_FILES["file"]["error"] > 0) {
echo "Error: " . $_FILES["file"]["error"] . "<br>";
} else {
$file_name = $_FILES["file"]["name"];
$file_path = "upload/" . $file_name;
$i = 1;
while (file_exists($file_path)) {
$file_name = "(" . $i . ")" . $_FILES["file"]["name"];
$file_path = "upload/" . $file_name;
$i++;
}
move_uploaded_file($_FILES["file"]["tmp_name"], $file_path);
echo "File uploaded successfully. File name: " . $file_name;
}
?>
```
在上面的代码中,与上一个问题的代码类似,首先判断上传是否出错,如果出错则输出错误信息。如果上传成功,则获取上传文件的原始文件名,并将文件移动到服务器上的指定目录中,使用 `move_uploaded_file()` 函数实现。但是,为了避免上传同名文件时出现覆盖的情况,需要对上传的文件进行重命名。
在重命名时,先在上传目录中搜索同名文件,如果存在,则在原文件名中添加 `(1)`、`(2)` 等后缀,直到找到一个不存在的文件名为止。最后再将文件移动到上传目录中,并输出上传成功的信息和新的文件名。
需要注意的是,这种重命名方式只适用于简单的上传场景,如果需要处理更复杂的文件重命名逻辑,建议使用专门的库或框架。此外,还需要对上传的文件进行一定的验证和过滤,以确保上传的文件是安全的。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)