Ajax成功功能不响应 - php

我制作了一个照片上传系统,但现在遇到了一个问题:

这里是Ajax部分:

$(document).ready(function(){
        $("#upload").click(function(e){
            var formData = new FormData(this);
            e.preventDefault();
            e.stopPropagation();
            $.ajax({
                type: "POST",
                url: "../system/avatar_system.php",
                data:formData,
                cache:false,
                contentType: false,
                processData: false,
                success: function(data){
                    if(data == "upload_ok"){
                        location.reload();
                    }
                },
                error: function(){
                }
            });
        });
});

这里的HTML:

<div class="form_box">
        <form id="avatar_form" enctype="multipart/form-data" method="post" action="../system/avatar_system.php">
            <input type="file" accept="image/*" id="file" name="file" class="select_file">
            <label for="file">Bild auswählen</label>
            <input id="upload" type="submit" value="Bild ändern" class="upload_file">
        </form> 
    </div>

这里是avatar_system.php:

if(isset($_FILES['file'])){
$dirpath = "../users/". $username ."/avataruploads/";
if(!is_dir($dirpath)){
    if(!mkdir($dirpath, 0777, true)){
        $error =  error_get_last();
        echo "Failed creating Folder";
        exit();
    }       
}

$file = $_FILES['file'];

$fileName = $_FILES['file']['name'];
$fileType = $_FILES['file']['type'];
$fileTmpName = $_FILES['file']['tmp_name'];
$fileSize = $_FILES['file']['size'];
$fileError = $_FILES['file']['error'];

$fileExplode = explode('.', $fileName);
$fileExt = strtolower(end($fileExplode));

$allowed = array('jpg', 'jpeg', 'png', 'gif');
if(in_array($fileExt, $allowed)){
    if($fileError === 0){
        if($fileSize < 32768000){
            $fileNewName = uniqid('', true) . '.' . $fileExt;
            $filepath = $dirpath . $fileNewName;
            move_uploaded_file($fileTmpName, $filepath);
            $sql = "UPDATE users SET avatar = '$filepath' WHERE username = '$username'";
            mysqli_query($conn, $sql);
            mysqli_close($conn);
            echo "upload_ok";
            exit();
        }else{
            echo "This file is to big";
            exit();
        }
    }else{
        echo "There was an Error";
        exit();
    }
}else{
    echo "Not allowed Extension";
    exit();
}
}

我希望如果响应为“ upload_ok”,则重新加载网站,但是我得到一个新的空白页面,上面显示消息“ upload_ok”。
或者,也许它不应该重新加载页面,而应立即更改头像。

这怎么可能?

php参考方案

如您在错误文本中看到的

TypeError:FormData构造函数的参数1(“ form”)必须是HTMLFormElement的实例

您传递给FormData而不是<form>,而是<input[type=submit]>

因此,您应该传递<form>。最简单的方法是

var formData = new FormData(this.form);

这是可能的,因为inputform始终具有输入所属的form属性<form>

当文本等于单选按钮的值时,选择单选按钮 - php

当下拉菜单中的文本等于值时,是否可以选择2个名称相同但值不同的单选按钮中的1个?https://paste.ee/p/2iCjA第97行我用if-else尝试过:if($('input[name="anrede"]').val() == 'Herr') { $("#Herr").…

在单次点击甚至点击链接时创建不同的功能 - php

我有3个链接,它们是学生的名字。第一次单击链接或奇数时间时,会出现另一个div,其中包含该学生的详细信息。在第二次或偶数时间单击同一链接时,我需要隐藏学生div。使用jquery的data()事件对我来说效果很好。我的要求是,如果我单击第一个学生链接,则会显示第一个学生的详细信息。如果单击第二个学生链接,则会显示第二个学生的详细信息。如果再次单击第一个链接,…

php:是否有充分的理由引用所有数组键/索引? - php

我正在遍历别人的代码,他们总是避免转义其数组键。例如:$ row_rsCatalogsItems [名称]代替$ row_rsCatalogsItems ['名称']因此,我不断地对自己接触的所有事物进行微小的更改,以应对这些惰性。但是现在我想知道这样做是否有很多好处。我得到它会在默认为字符串之前检查常量(我在处理常量时会讨厌php中的行为,因为即使未定义,…

如何通过Ajax将数据发送到不同的元素? - php

script.js $(document).on("click", ".send", function (event) { $.ajax({ url: "update.php", data: { id: id, }, type: "POST", success: function…

无法将jQuery发布到php上 - php

我目前在在PHP页面上的MySQLi SELECT的jQuery上发布变量时遇到一些麻烦。jQuery代码:$("#carta1").click(function() { cartaId = document.getElementById("carta1").value; console.log(cartaId); a…