javascript - jQuery Ajax 上传文件 php 即使没有内容也会接收数组

标签 javascript php jquery ajax

它正在工作,但在每次提交时我都会收到一个数组,即使文件甚至没有添加到文件输入(多文件输入)

    postData = new FormData(this); 
    $.ajax({
        url: "/url",
        type: "POST",
        data: postData,
        cache: false,
        contentType: false,
        processData: false,
        success: function (data, textStatus, jqXHR) {
            if (data === "true") {
                window.location.replace("/url");
            } else {
                $(".errors").html(data);
            }
        },
        error: function (jqXHR, textStatus, errorThrown) {
            swal("Der opstod en fejl");
        }
    });

我从 $_FILES 得到的内容如下

Array
(
    [files] => Array
        (
            [name] => Array
                (
                    [0] => 
                )

            [type] => Array
                (
                    [0] => 
                )

            [tmp_name] => Array
                (
                    [0] => 
                )

            [error] => Array
                (
                    [0] => 4
                )

            [size] => Array
                (
                    [0] => 0
                )
        )
)

有什么办法可以避免这种情况发生吗?

最佳答案

尝试将 required 属性添加到 input type="file" 元素,以防止在用户未选择文件的情况下提交form

$("form").on("submit", function(e) {
  e.preventDefault();
  // do `$.ajax()` stuff
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<form>
  <input type="file" name="files[]" multiple required />
  <input type="submit" />
</form>

关于javascript - jQuery Ajax 上传文件 php 即使没有内容也会接收数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35045205/

相关文章:

javascript - 构造函数内的变量范围

javascript - 如何访问查询返回的对象以便显示图像?

php - PHP 中 MySQL DECIMAL 数据类型的数学运算

javascript - 如何使用jquery获取一组元素的最高 "left"值?

jquery - 如何在隐藏的 div 中正确加载 jQuery fullcalendar 插件

javascript - 菜单(不是导航)的正确标记

javascript - 这两行代码的区别

php - Mysql 左连接问题与 3 个表不返回第一个表中的所有行

javascript - 在 foreach 循环内将输入文本复制到另一个文本?

javascript - 创建具有数据属性的div