PHP 连续文件命名


PHP Consecutive File Naming

所以我对PHP相当陌生,并且一直在开发一个Web应用程序,该应用程序允许用户提交设计,然后将其保存为图像(使用html2canvas.js)到服务器。我目前有该应用程序工作,但它会保存具有相同文件名的任何先前图像。

我希望它做的是在文件名末尾保存一个连续的数字,这样以前的设计就不会被覆盖。下面的工作代码 - if else 语句的想法是它检查现有文件,如果没有,则创建它(此代码有效),但如果有一个现有文件......我不知道。。

<?php
session_start();
$customerName = $_SESSION["design_name"];
//Get the base-64 string from data
$filteredData=substr($_POST['img_val_server'], strpos($_POST['img_val_server'], ",")+1);
//Decode the string
$unencodedData=base64_decode($filteredData);
//Check for previous user images
$fileName = '/customer-submits/design-' . $customerName . '.png';
if (file_exists($filename)) {
    //THIS IS WHERE IS WANT THE FILE TO SAVE CONSECUTIVELY
} else {
//Save the image
file_put_contents('customer-submits/design-' . $customerName . '.png', $unencodedData);
$file = 'customer-submits/design-' . $customerName . '.png' ;
$fileName = basename($file);
$fileSize = filesize($file);
set_time_limit(0);
header("Pragma: public");
header("Expires: 0");  // Cache Options 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");  // Cache Options 
header("Content-type: application/octet-stream");
header("Content-Disposition: filename='" " . $fileName ."'"");
header("Content-length: " . $fileSize);
readfile($file);
include 'sendMail.php';
echo send_mail();
}
?>

显然非常感谢对此的任何帮助,因为我正在努力了解 php!

如果出现类似的客户名称,则应在客户名称的末尾添加一个新数字。

$num = 0;
while (file_exists($filename)==TRUE) {
    $num++;
    $file = 'customer-submits/design-' . $customerName $num . '.png' ;
}

我在以前的代码中添加了==TRUE,这使它成为布尔值,应该消除您之前得到的解析错误。

在"//检查以前的用户图像"之后尝试此操作,替换 if...还:

$indx = 1;
$filename = '/customer-submits/design-' . $customerName . $indx . '.png';
while (file_exists ($filename) {
    $indx++;
    $filename = '/customer-submits/design-' . $customerName . $indx . '.png';
}