首页 > 解决方案 > PHP没有通过FormData上传文件

问题描述

我的网站上有多个不同的页面,允许用户将文件上传到服务器。这些通过 JQuery AJAX 使用 FormData 上传到一个 php 文件,然后处理它们并保存它们。下面是一个使用 ajax 的例子:

$('#form1').on('submit', function (e) {
    e.preventDefault();
    $.ajax({
        url: 'upload.php',
        type: 'post',
        data: new FormData($(this)[0]),
        cache: false,
        contentType: false,
        processData: false,
        success: function(result) {
            $("#result").html(result);
        }
    });
});

在 upload.php 中,我有代码检查文件是否$_FILES["fileToUpload"]["tmp_name"]存在,然后用于move_uploaded_file()保存它。这已经完美运行了很长一段时间,但是突然之间,我今天进来了,整个站点上的所有文件上传都无法正常工作。当我尝试在upload.phpvar_dump($_POST)var_dump($_FILES)时,它们都是空数组,这意味着发布请求实际上并没有发送表单数据?

我在 FireFox 和 Chrome 中都试过了,结果是一样的。此外,我无权访问 apache 配置,but phpinfo()显示我有file_uploads: On, max_file_uploads: 20, upload_max_filesize: 512M(比我要上传的文件大得多)和upload_temp_dir: no value. 我想知道这upload_temp_dir是否可能是导致问题的原因,但我不知道这是否是之前设置的。

任何想法为什么这可能不起作用?

编辑:这是我的 chrome 开发人员工具的图片,显示了请求的“有效负载”。 有效载荷

标签: phpjqueryajax

解决方案


推荐阅读