как переписать файл после подтверждения при загрузке в php - PullRequest
0 голосов
/ 11 января 2019

Я пытаюсь загрузить и перезаписать файл после отправки, если проверено, существует ли файл. Итак, если сначала проверить, существует ли файл в папке, а затем я дам вариант: «Да, вы хотите перезаписать его?» Если ДА, файл должен быть загружен и перезаписать старый.

Вот что у меня есть:

...
// file is ready to be uploaded    
$tmpFilePath = $_FILES['file']['tmp_name'];            
$newFilePath = $dir.'/' . $_FILES['file']['name'];

// check if file already exists
if(file_exists($dir.'/' . $_FILES['file']['name'])) {
        include('includes/file_exists.php');
        exit;
 }

 //finally upload the file
 if(move_uploaded_file($tmpFilePath, $newFilePath)) {    
    include('includes/success.php'); // echo                
    exit;                                   
 }

В file_exists.php указан этот код:

<span>File already exists! Do you want to overwrite it?</span>
<form class="sfmform"  action="" method="post">
    <input type="hidden" name="overwrite" value="<?php echo $_FILES['file']['tmp_name']; ?>" />                             
    <input type="submit" class=" btn btn-primary" name="submitoverwrite" value="Yes"/>
</form>

(все запросы обрабатываются AJAX)

1 Ответ

0 голосов
/ 11 января 2019

Если файл уже существует, вам нужно переместить загруженный файл во временную папку (не может оставить его в tmp, потому что он будет удален) и вернуть ответ, который сообщает UI, что вы нужно подтверждение перезаписи (или запросить новое имя). Когда пользователь решает, пользовательский интерфейс должен отправить новый запрос на сервер. Когда вы обрабатываете этот новый запрос, вы перемещаете файл в окончательное местоположение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...