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

如何在WordPress的Contact Form 7中将上传文件的UUID改为jpg格式

Contact Form 7 上传文件保留jpg后缀解决方案

这个是Contact Form 7自5.4版本后的默认行为,官方为了规避文件重名覆盖、路径遍历安全漏洞,默认会将上传文件重命名为无后缀的UUID格式存储到数据库,有同类需求的用户非常多,可通过插件自带的过滤器钩子修改上传逻辑实现需求。

你当前的数据库存储效果参考:
数据库存储UUID示例
表单上传配置参考:
表单上传配置截图

实现步骤

  • 将下方代码添加到WordPress站点当前激活主题的functions.php文件中,也可以使用Code Snippets这类自定义代码插件添加,避免主题更新后代码被覆盖
add_filter( 'wpcf7_upload_file_name', 'custom_cf7_retain_jpg_suffix', 10, 3 );
function custom_cf7_retain_jpg_suffix( $filename, $original_name, $upload_instance ) {
    $file_ext = strtolower( pathinfo( $original_name, PATHINFO_EXTENSION ) );
    // 仅针对jpg格式文件保留原始后缀,如需适配其他格式可扩展判断条件
    if ( $file_ext === 'jpg' ) {
        // 若担心重名可添加时间戳前缀,写法为:$filename = time() . '_' . $original_name;
        $filename = $original_name;
    }
    return $filename;
}
  • 代码添加完成后保存,清除站点缓存后测试表单上传,此时数据库中存储的文件名会保留.jpg后缀
  • 若需要所有格式的上传文件都保留原始后缀,直接去掉代码中的if判断条件即可

注意:如果取消UUID命名规则,建议同时限制表单允许上传的文件类型、大小,避免恶意文件上传风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 07:12:07