使用PHP上传文件时如何自定义修改保存文件名相关问题咨询
PHP文件上传自定义保存名称实现方案
你可以通过拆分原文件名的主体和扩展名,拼接自定义后缀后生成新的文件名,修改后的代码如下:
for($index = 0;$index < count($_FILES['files']['name']); $index++){ // 获取原文件名 $filename = $_FILES['files']['name'][$index]; // 拆分文件名主体和扩展名 $fileInfo = pathinfo($filename); $baseName = $fileInfo['filename']; $extension = $fileInfo['extension']; // 拼接自定义新文件名,示例为加_2021后缀 $newFileName = $baseName . '_2021.' . $extension; // 如果你需要动态使用当前年份,替换为下方代码即可 // $newFileName = $baseName . '_' . date('Y') . '.' . $extension; // 用新文件名生成保存路径 $path = '../pdf/'.$newFileName; // 上传文件 if(!move_uploaded_file($_FILES['files']['tmp_name'][$index],$path)){ // ERROR exit; } }
关键逻辑说明
- 用PHP内置的
pathinfo()函数可以快速获取文件的名称主体、扩展名等信息,避免手动切割字符串出现的格式错误 - 若需要避免多个同名文件上传时出现覆盖问题,可以在文件名中额外拼接唯一标识,例如毫秒级时间戳、随机字符串:
// 示例:拼接年份+6位随机数,避免重名 $newFileName = $baseName . '_' . date('Y') . '_' . random_int(100000,999999) . '.' . $extension;
内容的提问来源于stack exchange,提问作者Trombone0904
相关产品推荐
相关产品推荐

