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

如何为上传的签名文件名追加PHP唯一变量以确保唯一性

给签名文件名追加唯一ID的实现方案

要给文件名追加唯一ID$id确保唯一性,只需修改文件名的构造逻辑,同时注意对$id做安全过滤避免路径遍历风险,具体实现如下:

核心修改点

  • 将固定文件名替换为包含$id的动态文件名,把$id插入到文件名主体与扩展名之间
  • 对$_GET['id']做安全处理,过滤可能导致路径注入的特殊字符

修改后的完整代码

<?php
// 过滤ID中的非法字符,仅保留字母、数字和下划线,防范路径遍历风险
$id = preg_replace('/[^a-zA-Z0-9_]/', '', $_GET['id']);
$signature = $_POST['signature'];
$signature = str_replace('data:image/png;base64,', '', $signature);
$signature = str_replace(' ', '+', $signature);

// 构造带唯一ID的文件名
$file = "uploads/uploaded_signature_{$id}.png";

$success = file_put_contents($file, base64_decode($signature));

print $success ? $file : 'problem saving.';
?>

额外说明

  1. 若你实际生成的是JPEG文件,需同步修改两处:将扩展名从.png改为.jpg,同时把str_replace中的data:image/png;base64,替换为data:image/jpeg;base64,
  2. 安全过滤步骤不可省略:如果$id来自用户输入,直接拼接可能被利用发起路径遍历攻击,过滤后可规避此类风险
  3. 确保uploads目录存在且具备写入权限,否则file_put_contents会执行失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 01:07:06