javascript - 输入文件(图像)显示空数组,我应该在数组中包含数据吗?

标签 javascript php

html

<form method="post" action="" id="dataForm">
    <input type="file" name="embleLoader"/>
    <button name="sub-comfirm" class="btn-selection-content" type="submit" id="sub-comfirm">Send</button>
</form>

JS

$(document).ready(function(){
    $('#dataForm').on('submit', function(e) {
        e.preventDefault();
        SendData();
    });
});

function SendData(){
    var postData = $("#dataForm").serializeArray();

    $.ajax({
    type: "POST",
    url: "checkinput.php",
    data: postData,
    success:function(data)
    {
        console.log(data);
        console.log("suceess");
    },
    error: function(jqXHR, textStatus, errorThrown) 
    {
        console.log("failure");
    }
    });
}

php

<?php
$get = $_FILES["embleLoader"];
print_r($_FILES);
?>

我的目的是使用ajax将我的输入文件(图像值)传递给php,将数据传递给php,我使用$_FILES来检查我的输入文件数据,它给我空数组,为什么我无法获取数据使用我的代码?它应该是数组 tmp_name 内的某个内容还是 error>0 。类似的东西?

如何使用输入文件传递图像并传递给 php。

返回结果:

Array
(
)

inputfile.html:30 suceess

最佳答案

选择文件时,您需要将文件信息存储在全局变量中,然后使用该全局变量发送文件,如下所示:

HTML:

<form method="post" action="" id="dataForm" enctype="multipart/form-data">
            <!-- assign a id to input field here -->
            <input type="file" name="embleLoader" id="fileSelector"/>
            <button name="sub-comfirm" class="btn-selection-content" type="submit" id="sub-comfirm">Send</button>
</form>

Javascript:

<script type="text/javascript">
    var fileVar = null;// global var to store file info
    $(document).ready(function(){
        $('#dataForm').on('submit', function(e) {
            e.preventDefault();
            SendData();
        });

        $('#fileSelector').on('change',function(ev){
            fileVar = null;
            fileVar = new FormData();
            $.each(ev.target.files, function(key, value)
            {
                fileVar.append(key, value);                 
            });
        });
    });

    function SendData(){
        $.ajax({
            type: "POST",
            url: "checkinput.php?files",//you need to add this '?files part' to URL
            data: fileVar,// use fileVar here now
            cache: false,
            processData: false, 
            contentType: false, 
            success:function(data)
            {
                console.log(data);  
                console.log("success");
            },
            error: function(jqXHR, textStatus, errorThrown) 
            {
                console.log("failure");
            }
        });
    }
</script>

关于javascript - 输入文件(图像)显示空数组,我应该在数组中包含数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34670265/

相关文章:

javascript - 2018 相当于 jQuery 的基本 sizzle 选择器?

php - 使用 cURL 从 URL 保存 Facebook 个人资料图片无法正常工作 2018 年 3 月 27 日之后

php mysql jquery javascript 聊天

php - 限制共享主机上 IP 的资源使用

javascript - 我可以将 jasmine-spec-reporter 的输出写入文件吗?

javascript - 导航菜单下的图标动画

javascript - rails 4 : How do I do an AJAX call on nested forms?

javascript - Dojo 与编辑器的自动完成集成

php - 插入mysql但选择何时显示...?

php - 使用 MySQL、PHP/JavaScript/Ajax/jQuery 链接下拉列表