javascript - blueimp jquery-file-upload 如何在上传前取消 1 个文件

标签 javascript jquery file-upload blueimp

我正在使用以下库 https://github.com/blueimp/jQuery-File-Upload/wiki

我在选择(添加文件)按钮后显示所选文件。我没有显示显示取消按钮或上传的演示网格

我有一个提交按钮(见下文)。 在选择此上传按钮之前,我想取消上传所选文件之一。

通过代码,我看到当我最终点击提交时,它会为每个上传的文件调用 fileuploadsubmit。

我想向用户显示所选文件的网格,然后允许他们通过选择要从数据中删除的链接来取消其中一个文件。我在网上找到的所有样本都倾向于 parent().remove() 从而从视觉网格中移除。

我怎么能不显示那个网格呢?

即..

                ...
                add: function (e, data) {

                $.each(data.files, function (index, file) {
                    files += file.name;
                });
                $('#files').text(files);

                viewModel.Add(data);

                data.context = $('#btnUpload')
                    .click(function () {
                        data.submit();
                        return false;
                    });
            },
            ......


            $('#fileupload').bind('fileuploadsubmit', function (e, data) {
            // The example input, doesn't have to be part of the upload form:
            //var input = $('#input');
            //data.formData = {example: input.val()};

            var countryId = 1; //viewModel.selectedCountry().CountryId()
            var selected = 'test'; //$('#lstTemplate option:selected').text();

            data.formData = { templateType: selected, countryId: countryId };
            if (data.formData.templateType == 'Select') {
                data.context.find('button').prop('disabled', false);
                return false;
            }
        });

最佳答案

实际上可以从 data.files 中删除一个文件。 我正在使用 KnockoutJs 网络组件,我在其中存储“上传对象”的实例,并且我有用于文件列表的可观察数组 ...

我的配置是:

.fileupload({
            url: DataServiceBaseUrl + '/api/Ruleset/BatchImport',
            dataType: 'json',
            singleFileUploads: false,
            replaceFileInput: false,
            add: function (e, data) {
...

我做的是

this.RemoveFile = function(index){
   this.UploadInstance.files.splice(index,1);
   this.UploadFiles.splice(index,1);
}

模板是:

 <!-- ko foreach: UploadFiles -->
    <div><span data-bind="text: name"></span><button data-bind="click: function() { $component.RemoveFile($index()); }">delete</button></div>
 <!-- /ko --> 

关于javascript - blueimp jquery-file-upload 如何在上传前取消 1 个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22052146/

相关文章:

javascript - 使用 PHP 和 AJAX 插入数据时的问题

javascript - 错误 : Bad content type. 请使用多部分

go - 在 GO 中将多部分形式的数据读取为 []byte

javascript - Node.js 与 Express : Change response data for certain path

javascript - 无法通过 jQuery ajax 发送特殊字符

javascript - 如何在 Javascript 中为字符串添加斜杠?

PHP $_FILES 多文件上传问题

javascript - 从 asp.net 正确执行 javascript 代码

javascript - WebGL 着色器根据鼠标位置为纹理着色

javascript - jQuery val() 不更新 .html() 中的值