在Blueimp jQuery File Upload上禁用自动上传

Kem*_*min 12 javascript asp.net jquery file-upload blueimp

我正在使用blueint jquery.fileupload插件来使用asp.net上传文件

我有一种情况,我有一个页面,允许用户选择一个类别(dropdownlistbox),一个标题(用于上传的文件 - TextBox)和一个文件输入(由插件处理).

插件:https: //github.com/ieb/jQueryFileUpload.Net

使用Javascript/jQuery的:

 $('#fileup').fileupload({
                    replaceFileInput: false,
                    formData: function (form) {
                        return [{ name: 'dcat', value: $('#ddlCats').val() }, { name: 'title', value: $('#txtTitle').val()}];
                    },
                    dataType: 'json',
                    url: '/_handlers/FileHandler.ashx',
                    add: function (e, data) {
                        var valid = true;
                        var re = /^.+\.((doc)|(xls)|(xlsx)|(docx)|(pdf)|(pts))$/i;
                        $.each(data.files, function (index, file) {
                            if (!re.test(file.name)) {
                                $('#uploaded').html('This file type is not supported');
                                valid = false;
                            }
                        });
                        if (valid)
                            data.submit();
                    },
                    done: function (e, data) {
                        $.each(data.result, function (index, file) {
                            $('#uploaded').html(file);
                        });
                        GetFiles($('#ddlCats').val())
                    },
                    error: function () {
                        alert('An error occured while uploading the document.');
                    }
                });
Run Code Online (Sandbox Code Playgroud)

HTML:

<div id="fUpload">
<span style="font-weight:bold;">Yeni Belge:</span><br />
    <table class="ktoeos">
        <tr>
            <td>Category:</td>
            <td> <select id="ddlCats"></select></td>
        </tr>
        <tr>
            <td>Document Description:</td>
            <td><input type="text" id="txtTitle" /></td>
        </tr>
        <tr>
            <td>Select Document:</td>
            <td><input type="file" name="file" id="fileup" /></td>
        </tr>
        <tr>
           <td colspan="2"><input type="submit" id="btnSubmit" value="Upload" /></td>
        </tr>
    </table>
    <div id="uploaded"></div>
Run Code Online (Sandbox Code Playgroud)

我的问题是,文件在我选择文件后直接上传(通过http处理程序).我可以处理它以提交其他表单数据但是,我想在按钮提交时触发此事件,因为我需要执行一些验证.用户可能还想首先选择一个文件然后填写表单的其他部分,在这种情况下他/她不能这样做,因为在他/她可以这样做之前提交表单.

由于我不是一个非常好的javascript程序员,我不知道这个功能是否已经可用(可能是)插件可用的.js文件中.我需要改变或做什么?

Spr*_*cat 18

add回调只要文件被添加到该控件调用,所以你需要重写它暂停上传,然后通过单击按钮启动它.

add: function (e, data) {
    $("#btnSubmit").click(function () {
        // validate file...
        if(valid)
            data.submit();
    });
}
Run Code Online (Sandbox Code Playgroud)

更新:文档现在有一个更好的例子:

  • 正是我在寻找什么.唯一的问题是文本框没有显示文件路径.. (5认同)

cod*_*der 6

这很容易做到,因为有一个选项" autoUpload: true"被设置为默认值jquery.fileupload-ui.js

如果将其更改为false,则可以在按钮Click事件上手动编码.