0

首先,如果下面的代码是做我想做的事情的正确方法,我是一个初学者和 idk,但这是我认为我可以做到这一点的方式(使用表单传递一些值)。

因此,我使用以下代码让用户选择是否要删除文件夹中的文件,同时上传同名文件。第一个“move_uploaded_file”的参数与第二个“move_uploaded_file”具有相同的内容(这就是我回显它们的原因)并且它工作得很好,但它适用于与上传文件同名的文件。

那么有什么想法我的错误是什么?删除(取消链接)正在工作,但是当我单击“是”按钮时,它没有上传新文件。

如果您需要更多信息,请告诉我,如果这是一个愚蠢的问题,我很抱歉,但我真的不明白出了什么问题。

谢谢是提前!


<?php

            $target_dir = "wp-content/themes/astra-child/myuploads/";
            $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
            $uploadOk = 1;

                if (file_exists($target_file)) {
                    
                    echo "Already exists.<br>";
                    echo "Do you want to replace the file?";
                    ?> 
                    <form action="" method="post">
                        <input type="hidden" id="myfilename" name="myfilename" value="<?php echo ($_FILES["fileToUpload"]["tmp_name"]);?>">
                        <input type="hidden" id="replacefilename" name="replacefilename" value="<?php echo basename($_FILES["fileToUpload"]["name"]);?>">
                        <input type="submit" value="Yes" name="btn-replace-yes">
                        <input type="submit" value="No" name="btn-replace-no">
                    </form>
                    <?php
                    
                    if (isset($_POST['btn-replace-yes'])) {

                        $replacelink = $target_file . $_POST["replacefilename"];
                        unlink(realpath("$replacelink"));

                        $target = $target_file . $_POST["replacefilename"];

                        $last = $_POST["myfilename"];
                        $last = str_replace('\\\\', '\\', $last);

                        echo $last;
                        ?><br><?php
                        echo $target;

                        if (move_uploaded_file($last, $target)){

                            $uploadOk = 0;
    
                            echo "The file with name «". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). "» is inserted in folder successfully!";
        
                            $uploadOk = 0;
                            mysqli_close($link);
    
                        } else {
                            echo "Failure.";?>
                            <button onclick="window.location.href='secretary-panel';">
                                Go Back
                            </button>
                            <?php
                        }

                        $uploadOk = 0;

                    }else if (isset($_POST['btn-replace-no'])){
                        $uploadOk = 0;
                        header("location:../secretary-panel/");
                    }
                    $uploadOk = 0;
                }
?>

<?php

                $target_dir = "wp-content/themes/astra-child/myuploads/";
                $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);


                // if everything is ok and we dont have the same name of the files, try to upload
                 if ($uploadOk == 1) {

                    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)){
                        echo $_FILES["fileToUpload"]["tmp_name"];?><br><?php
                        echo $target_file;

                    } else {
                        echo "Failure.";?>
                        <button onclick="window.location.href='secretary-panel';">
                            Go Back
                        </button>
                        <?php
                    }
                  }

?>

4

0 回答 0