Я пытаюсь загрузить файл и переименовать его, если он уже существует. То, что я хочу сделать, - это то, что когда один и тот же файл загружает имя, просто добавляет 1, затем 2, затем 3 и так далее.Переименуйте файл, если он уже существует
Пример: Если файл «файл» существует, новый файл должен быть «file1», а затем следующий «file2».
Я видел несколько примеров на сети, но ничего, что я мог видеть, подходит к моему коду (нуб)
Это мой код прямо сейчас:
$id = $_SESSION['id'];
$fname = $_FILES['dok']['name'];
if ($_FILES['dok']['name'] !=""){
// Checking filetype
if($_FILES['dok']['type']!="application/pdf") {die("You can only upload PDF files");}
// Checking filesize
if ($_FILES['dok']['size']>1048576) {die("The file is too big. Max size is 1MB");}
// Check if user have his own catalogue
if (file_exists("filer/".$id."/")) {
// Moving the file to users catalogue
move_uploaded_file($_FILES['dok']['tmp_name'],"filer/".$id."/".$fname);}
//If user don't have his own catalogue
else {
// Creates new catalogue then move the file in place
mkdir("filer/".$id);
move_uploaded_file($_FILES['dok']['tmp_name'],"filer/".$id."/".$fname); } }
Может кто-нибудь помочь мне, где я может вставить код, который решает эту проблему? Большое спасибо!
пробовали ли вы что-нибудь себя? – jeroen
Ваш код очень опасен. Вы непосредственно используете ** ПОЛЬЗОВАТЕЛЬ **, предоставленный '['name']' paramter в качестве конечного местоположения файла на вашем сервере. Злоумышленник может вставлять информацию о пути и использовать ваш скрипт для записи любого файла, который они хотят на сервере. Ваш '['type']' check is ** NOT ** security. Это бесполезно. mime типы тривиальны для подделывания. –
Да, я на самом деле пробовал кучу, но не сделал это работать, поскольку я совершенно новый, я задушил изменить код и сделать его подходящим с моим .. – Aromefraise