При перемещении файла вам не нужно использовать имя, переданное в массиве $ _FILES. Вы можете создать любое имя, которое вы хотите (при условии, что путь действителен) и передать его как второй аргумент move_uploaded_file. Если вы хотите получить полуслучайное имя, вы можете сгенерировать случайное число, а затем хеш его или что-то создать имя файла.
Если вы хотите проверить, во-первых, если файл существует, то переименовать его, чтобы иметь числовой суффикс, вы можете сделать это:
<?php
$base_path = "uploads/";
$file_path = $base_path . basename($_FILES['uploaded_file']['name']);
if(file_exists($file_path)) {
$ctr = 0;
do { // increment an index to append to the filepath
$ctr++;
$file_path = $base_path . basename($_FILES['uploaded_file']['name']) . "_$ctr";
} while(file_exists($file_path));
}
if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) {
echo "success";
} else{
echo "fail";
}
?>
выше фрагмент кода будет держать приращение до тех пор, пока не найдет имя файла, которое Безразлично не существует. Конечно, вы хотите добавить некоторые ограничения и проверку ошибок, в то время как приведенный выше фрагмент демонстрирует концепцию, она не полностью готова к производству.
Да, я знаю этот код. Но вы видите его приложение, которое захватывает изображение, поэтому представьте себе, что миллионы людей захватывают его. Так что я не могу стоять на точной, мне просто нужно на случайном расстоянии. Подождите! На линии Файл, могу ли я поставить код, который будет генерироваться случайным союзником? – BiggDawgg
наверняка вы можете унифицировать имя файла, используя user_id + currenttimemillillies или какую-то другую логику. –
плохо помните о своем коде. Хороший, используйте его позже. – BiggDawgg