Я хочу, чтобы php загрузил форму изображения, чтобы проверить имя файла и, если он существует, спросить, хочу ли я перезаписать

У меня есть форма php, куда загружаются несколько изображений. Имена файлов сверяются с текущей папкой, и если есть совпадение, оно останавливается, вот упрощенная версия того, что происходит:

if (file_exists("../uploads/" . $_FILES["file"]["name"][$i])){
    echo "sorry that one already exists, rename";
}else{
    move_uploaded_file($_FILES["file"]["tmp_name"][$i],"" . '../uploads/'.$_FILES["file"]["name"][$i]);
    echo $_FILES["file"]["name"][$i]." was uploaded";
}

Я хочу спросить: "Вы хотите перезаписать существующий файл"? Если они в порядке с этим, тогда продолжайте с move_uploaded_file(). Это может быть всплывающее окно или что-то еще. Каков наилучший способ сделать это?

2 ответа

Решение

Если вы читаете из $_FILES тогда данные уже были размещены на сервере. Технически можно вернуть страницу с ошибкой пользователю с просьбой подтвердить перезапись, но было бы более элегантно и эффективно проверить существование имени файла / пути через ajax перед отправкой фактических данных файла на сервер.

Вы спросили, можете ли вы сделать это со стороны клиента, не загружая файл на сервер - ответ - не так просто.

Единственный способ сделать это - создать обработчик AJAX, которому вы передадите имя файла изображения и вернете ответ, если файл существует, а затем соответственно отобразите всплывающее окно.

Другие вопросы по тегам