如何在同一页面上提交文件而不重新加载


How to submit the file on the same page without reloading

我试图找到问题的答案"如何提交文件而不重新加载标签",我来到这个线程上传文件的形式没有页面刷新在这个线程最好的答案是"使用隐藏iframe"。但是,如果我们使用隐藏iframe,则可以在不刷新页面的情况下将表单数据提交到另一个文件。但是如何可能提交文件(使用iframe)到当前文件(页面)而不重新加载。我正在使用

<form action="<?php echo $_SERVER["PHP_SELF"];?> enctype="multipart/form-data">
<input type="file" name="image">
<input type="submit">
</form>

我认为在我的情况下,我们甚至不能使用seralize()方法。所以我们如何在同一个页面上提交文件而不重新加载它。我认为iframe可能不是解决方案。

这里我使用jquery像这样。你必须创建对象FormData

jQuery("body").on("beforeSubmit", "form#YOUR_FORM_ID", function() {
            var form = jQuery(this);
            jQuery.ajax({
                url: form.attr("action"),
                type: "POST",
                data: new FormData(this),
                processData: false,
                contentType: false,
                async: false,
                success: function(response) {
                    if (response) {
                      //your response 
                    }
                },
                error: function() {
                    console.log("internal server error");
                }
            });
            return false;
        });