FineUploader将多个文件作为一个请求上传

时间:2013-10-08 18:46:28

标签: fine-uploader

我需要上传多个文件作为一个请求。 例如,我需要保存两个必需的文件(.csv和.ctl)。 基本上在服务器端,我正在读取.csv文件并根据.ctl文件进行检查。如果某些条件不匹配,我不需要上传它。我不确定如何或需要更新'upload'方法来读取文件名[]。我也不需要更新这行“uploader.fineUploader('uploadStoredFiles');”现在,在用户点击“立即上传”后接受文件名[]。

<script type="text/javascript">
    $(document).ready(function () {
        var filenames = [];
        var uploader = $("#fine-uploader").fineUploader({
            request: {
                endpoint: '<%= ResolveUrl("~/Handler/UploadHandler.ashx")%>'
            },
            autoUpload: false,
            text: {
                uploadButton: '<span class="glyphicon glyphicon-plus"></span> Select Files'
            },
            validation: {
                allowedExtensions: ['csv', 'ctl']
            },
            showMessage: function (message) {
                // Using Bootstrap's classes
                $('#fine-uploader').append('<div class="alert alert-danger">' + message + '</div>');
            }
        }).on('validate', function (event, fileData) {
            return $.inArray(fileData.name, filenames) < 0;
        }).on('submitted', function (event, fileId, fileName) {
            filenames.push(fileName);
        }).on('upload', function (event, fileId, fileName) {
            var fileItemContainer = $(this).fineUploader('getItemByFileId', fileId);
            $(this).fineUploader('setParams', { uploadType: 'VendorFileType', vendorId: '<%=vendorDropdownList1.CurrentVendorID %>' }, fileId);
        }).on('complete', function (event, fileName, fileName, responseJSON) {
            if (responseJSON.success) {
                var div = document.getElementById('fine-uploader-status');
                div.innerHTML = 'Upload process complete.';
            }
            else {
                var div = document.getElementById('fine-uploader-status');
                div.innerHTML = 'Upload denied.';

            }
        });

        $('#uploadSelectedFiles').click(function () {
            uploader.fineUploader('uploadStoredFiles');
        });
    });
</script>

 //here's the aspx side.
<div id="fine-uploader">
</div>
<div id="fine-uploader-status">
</div>
<button id="uploadSelectedFiles" class="btn btn-primary">
    <span class="glyphicon glyphicon-upload"></span>Upload now</button>

1 个答案:

答案 0 :(得分:3)

Fine Uploader不支持在单个请求中发送多个文件。这会不必要地使代码复杂化并且会破坏一些现有功能。每个文件都在单独的请求中发送。您说您正在执行某些服务器端检查以防止上载,但是当您的服务器能够执行这些比较时,文件已经上传。从您的问题中不清楚为什么您需要在单个请求中上传多个文件,或者这给您带来了什么好处。如果你澄清,也许我可以提供其他建议。