javascript - Ajax图像从html文件上传到codeigniter Controller - 空白$_FILES数组

标签 javascript php jquery ajax codeigniter

我有一个带有图像上传表单的 html 文件

<form name="logo_photo" id="logo_image_form" enctype="multipart/form-data" action="" method="post">
        <input type="file" id="logo_upload" name="uploadfile"/>
</form>

和一个jquery脚本来尝试ajax上传此表单 - 就像这样

$(document).ready(function (e) {
    $("#logo_upload").on('change',  function(event){            
        $("#logo_image_form").submit();         
        event.preventDefault();
    });

    $("#logo_image_form").on('submit', function(event){

            event.preventDefault()
        $.ajax({
            type:'POST',
            url: serverUrl+"uploadController/imageuploadAction",
            data:$(this).serialize(),
            cache:false,
            success:function(data){
                console.log("success");
                console.log(data);
            },
            error: function(data){
                console.log("error");
                console.log(data);
            }
        });




        return false;
                event.preventDefault();
    });
});

而codeigniter框架中的 Controller ,只是有一个小的测试返回,就像这样 -

function imageuploadAction() {
    //testing controller

    print_r($_FILES);
}

但返回的是一个空数组。我想编写更多代码来检查和上传图像,例如对 $_FILES['uploadfile']['tmp_name'] 执行测试,但 $_FILES 似乎是空的。

我在这方面缺少什么?任何帮助将不胜感激,谢谢!!

最佳答案

无法通过 $.ajax 上传文件。您可以使用 Iframe 或 xmlhttprequest 版本 2 来执行此操作。

我见过的通过ajax上传文件的最好的jquery插件是jquery.form.js。这适用于所有浏览器并使用 xmlhttprequest 1。

您可以非常有效地使用它。

关于javascript - Ajax图像从html文件上传到codeigniter Controller - 空白$_FILES数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20896824/

相关文章:

php - 如何使用 linux 的 shell 脚本运行 Laravel 路由?

php - 如何只搜索 mysql 数据库内的部分值?

javascript - JS 在窗口调整大小时中断

javascript - 添加一个 Javascript 按钮来更改 iframe 的内容

javascript - 该函数是否是一个闭包,为什么?

javascript - 我收到错误消息 : "Cannot read property ' push' of undefined"

php - Facebook 连接 : unregister users with PHP library

java - 我们可以序列化并发送一个包含主对象内的对象列表的表单 - Ajax、Spring MVC

javascript - 页面刷新或更改时保存通过 Redux 传递的数据时出现问题

javascript - Express js 中的 async.waterfall 方法