2

我需要将多个文件作为一个请求上传。例如,我有两个需要保存的文件(.csv 和 .ctl)。基本上在服务器端,我正在读取 .csv 文件并对照 .ctl 文件对其进行检查。如果某些条件不匹配,我不需要上传它。我不确定如何或需要更新“上传”方法来读取文件名 []。我也不需要更新这一行“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>
4

1 回答 1

4

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

于 2013-10-08T18:52:01.600 回答