文件名中的自动递增数字
auto increment number within filename
我的用户可以上传个人资料照片,一张一张,但次数不限。
假设用户 1 上传了一张图片,此代码会将其存储到我的上传文件夹中:
<?php
$fileData = pathinfo(basename($_FILES["fileToUpload"]["name"]));
$fileName = 'user_id_#1#_profilepic_#' . uniqid() . '#.' . $fileData['extension'];
$target_path = "uploads/" . $fileName;
while(file_exists($target_path)) {
$fileName = 'user_id_#1#_profilepic_#' . uniqid() . '#.' . $fileData['extension'];
$target_path = ($_SERVER['DOCUMENT_ROOT'] . "uploads/" . $fileName);
}
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_path)) {
echo "The image was successfully uploaded. <a href='index.php'>Add another image</a>";
}
else {
echo "There was an error uploading the file, please try again!";
}
?>
这个 uniqid() 需要被替换,因为稍后以正确的顺序找到图像是一场噩梦。
我希望图片在上传后看起来像这样:
user_id_#1#_profilepic_#1#.jpg
user_id_#1#_profilepic_#2#.jpg
user_id_#1#_profilepic_#3#.png
user_id_#1#_profilepic_#4#.gif
user_id_#1#_profilepic_#5#.jpg
and so on...
我该怎么做?目前我还没有任何想法。
您可以在您的目录中按文件编号递增(如果您的用户可以删除他的图片,则不推荐):
$total_files = count(glob("./*",GLOB_BRACE)); // count files in directory
echo $total_files;
或:
使用记录数字的文本文件。
例如:
您的用户上传文件:
在文本文件中获取当前号码 -> 添加 +1 并使用此号码重命名文件 -> 在 txt 文件中记录新号码。
最好的方法应该是数据库记录中的唯一 ID,但您可能没有使用数据库。
希望对你有所帮助
祝你有愉快的一天!
我的用户可以上传个人资料照片,一张一张,但次数不限。
假设用户 1 上传了一张图片,此代码会将其存储到我的上传文件夹中:
<?php
$fileData = pathinfo(basename($_FILES["fileToUpload"]["name"]));
$fileName = 'user_id_#1#_profilepic_#' . uniqid() . '#.' . $fileData['extension'];
$target_path = "uploads/" . $fileName;
while(file_exists($target_path)) {
$fileName = 'user_id_#1#_profilepic_#' . uniqid() . '#.' . $fileData['extension'];
$target_path = ($_SERVER['DOCUMENT_ROOT'] . "uploads/" . $fileName);
}
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_path)) {
echo "The image was successfully uploaded. <a href='index.php'>Add another image</a>";
}
else {
echo "There was an error uploading the file, please try again!";
}
?>
这个 uniqid() 需要被替换,因为稍后以正确的顺序找到图像是一场噩梦。
我希望图片在上传后看起来像这样:
user_id_#1#_profilepic_#1#.jpg
user_id_#1#_profilepic_#2#.jpg
user_id_#1#_profilepic_#3#.png
user_id_#1#_profilepic_#4#.gif
user_id_#1#_profilepic_#5#.jpg
and so on...
我该怎么做?目前我还没有任何想法。
您可以在您的目录中按文件编号递增(如果您的用户可以删除他的图片,则不推荐):
$total_files = count(glob("./*",GLOB_BRACE)); // count files in directory
echo $total_files;
或:
使用记录数字的文本文件。
例如: 您的用户上传文件: 在文本文件中获取当前号码 -> 添加 +1 并使用此号码重命名文件 -> 在 txt 文件中记录新号码。
最好的方法应该是数据库记录中的唯一 ID,但您可能没有使用数据库。
希望对你有所帮助
祝你有愉快的一天!