代码之家  ›  专栏  ›  技术社区  ›  treyBake user1850175

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

  •  0
  • treyBake user1850175  · 技术社区  · 7 年前

    我有一张表格:(简称)

    <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 回复  |  直到 7 年前
        1
  •  0
  •   treyBake user1850175    7 年前

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

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

    修改输入:

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

    工作,我现在可以用 $_FILES