You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP使用pathinfo分离文件扩展名后生成加密文件名缺失后缀问题

问题原因

你代码的问题出在explode拆分文件名的逻辑错误:

  • 你用pathinfo($file, PATHINFO_EXTENSION)拿到的扩展名$validate值为jpg
  • 用jpg作为分隔符拆分原文件名CT0001_0002.1.jpg时,拆分结果为['CT0001_0002.1.', '']两个元素
  • 因此list($name,$extension)接收到的$extension是空值,最终拼接出来的文件名后缀部分就为空

修复方案

无需额外拆分文件名,pathinfo原生支持直接获取不含后缀的文件名和扩展名,修改后代码如下:

$file = 'CT0001_0002.1.jpg';
// PATHINFO_FILENAME 直接返回去掉最后一级后缀的文件名
$name = pathinfo($file, PATHINFO_FILENAME);
// PATHINFO_EXTENSION 直接返回文件扩展名
$extension = pathinfo($file, PATHINFO_EXTENSION);
$date = date("Y-m-d H:i");
$cod = md5($name.$date).".".$extension;
echo $cod;

修改后即可输出符合预期的带后缀的编码文件名。

内容的提问来源于stack exchange,提问作者JM_2021

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 15:27:03