php - Ajax FormData 文件上传不起作用 [JQuery] [PHP]

标签 php jquery ajax forms upload

由于某种原因,我的上传表单无法正常工作,当我提交表单时,PHP 文件会运行,并且我的 $_FILES 变量为空。我已经被困了好几个小时了,我觉得我已经浏览了这个网站上的每一篇文章,但我就是不明白出了什么问题。

HTML

    <form id="uploadform" name="uploadform" method="POST" enctype="multipart/form-data">
      <input id="realupload" name="realupload" type="file" multiple/>
      <input id="uploadsubmit" type="submit" value="upload"/>
</form>

JQuery

$('#uploadsubmit').click(function(e)
{
    e.preventDefault();

        $.ajax({
            type: "POST",
            url: "upload.php",
            data: function(){
                alert("test");
                var data = new FormData();
                data.append("realupload", jQuery("#realupload").get(0).files[0]);
                return data;
            }
            ,
            processData:false,
            contentType: false,
            cache: false,
            success: function(theData){
                $('#innercontent').html(theData);
            },
            error: function() {
                $('#innercontent').html("ERROR, HELP");
            }
        });

    } 
});

PHP(上传.php)

<?php
//upload.php
if (isset($_FILES["realupload"]))
{
    echo "SUCCESSFUL UPLOAD " . $_FILES["realupload"]["error"];
}
else{
    echo "FILES NOT SET";
}
?>
  • PHP 文件只是一个测试文件,用于检查上传是否有效
  • 每次都会输出FILES NOT SET
  • ajax 数据函数内部的警报未运行,我不确定是否应该运行
  • 尝试创建多文件 uploader

这可能与服务器有关吗?那里已经有一个上传的论坛本身允许上传,所以我不认为是这样,但我不确定。

谢谢!

编辑:伙计们,感谢您提供的链接,但您现在可以使用 HTML5 和 XmlHttpRequest2 对象上传文件,我正在尝试解决这个问题。

最佳答案

只需使用 http://jquery.com/download/ 中的新 jquery 库 jquery-2.1.1.min.js

绝对能解决你的问题。几天前,我遇到了同样的问题,所以我尝试了上面的库,它确实对我有用。

关于php - Ajax FormData 文件上传不起作用 [JQuery] [PHP],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23204065/

相关文章:

php - 存储用户权限的最佳方式?

php - Codeigniter 无法加载大型自定义库

javascript - 如何在jquery中按名称选择选项

php - 使用 JCrop 一次裁剪多张图像并在 php 中进行 session

php - 如果内容更改,MySQL 将不会更新

jquery - 如何使用jquery正则表达式在标签中查找电话号码

php - 使用 AJAX 和 PHP 检索数据

javascript - 客户端无限滚动 JQuery

php - 不要在 X 元素中加载内容

jquery - 我是否必须使用带有 jquery 的 ajax 完整选项的匿名函数?