使用jQuery将文件发送到输出屏幕

时间:2018-09-28 11:16:16

标签: php jquery file

我有一个表格:(简化版)

<form class="form-inline" id="parts-form" method="post" enctype="multipart/form-data">
    <div class="form-group">
        <label for="import-parts">Import:</label>
        <input type="file" id="import-parts" />
    </div>
</form>

与其他输入(仅文本/选择)一起使用-提交效果很好,但是我有一些jQuery可以检测是否有文件或输入是否满足X量:

if ($('#import-parts')[0].files[0]) {
    form.attr('action', parts_url+ 'output-screen.php');
    form.submit()
} else {
    if (i > 0) {
        form.attr('action', parts_url+ 'output-screen.php');
        form.submit()
    } else {
        alert('Error! You must have at least one part selected. Please try again.')
    }
}

条件是正确的(我知道这是因为我被带到output-screen.php),但是这样做:

<div class="row">
    <?php
        echo '<pre>';
        print_r($_POST);
        echo '</pre>';

        echo '<pre>';
        print_r($_FILES);
        echo '</pre>';
    ?>
</div>

在output-screen.php中返回空数组-我的代码有什么问题?为什么没有显示我的期望? jQuery .submit()是否缺少我不知道的东西?

编辑:

为了进一步说明,它是一个csv文件(目的是读取CSV并使用其中的数据)

1 个答案:

答案 0 :(得分:0)

所以这是一个愚蠢的问题-表单输入需要一个name属性。

ref:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input#Attributes

将输入修改为:

<input type="file" name="input" id="import-parts" />

可以,现在我可以使用$_FILES来查看我的数据了。感谢@kerbholz带领我朝着正确的方向前进。