检测表单提交何时完成

时间:2016-10-10 19:59:22

标签: javascript forms amazon-s3

我有一个使用AWS S3 Presigned POST直接发布到AWS S3存储桶的表单,因此在表单提交后我无法控制服务器端的操作。

如何检测表单提交/上传过程何时完成?

以下是我如何生成表单:

    <form<?php foreach ($data['upload_link']['formAttributes'] as $key => $value) {
        echo " $key=\"$value\"";
    } ?>>
        <?php foreach ($data['upload_link']['formInputs'] as $key => $value) {
            echo "<input type=\"hidden\" name=\"$key\" value=\"$value\">";
        } ?>
        <input type="file" name="file" id="file"/>
    </form>
    <button type="submit" onclick="submitFile()">Upload</button>

以下是我正在使用的javascript:

    function submitFile() {
        document.getElementsByTagName('form')[0].submit();
        document.getElementById('file').value = '';
        updateUploads();
    }

我希望暂停执行updateUploads()函数,直到上传完成。现在,它正在更新太快,因此最新的上传不会填充列表。

我试图用此提交而产生 412(先决条件失败)

        $.ajax({
            url: form.attr('action'),
            type: form.attr('method'),
            data: form.data,
            success: function (data) {
                // stuff
            },
            contentType: false
        });

将contentType设置为&#39; multipart / form-data&#39; 产生400(错误请求)并使用FormData对象给我 Uncaught TypeError:非法调用

0 个答案:

没有答案