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

标签 fine-uploader

我需要将多个文件作为一个请求上传。 例如,我需要保存两个必需的文件(.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>

最佳答案

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

关于fine-uploader - FineUploader 将多个文件作为一个请求上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19255796/

相关文章:

jquery - Fine Uploader - 在初始化时设置 netUploads

json - 处理IE且不处理fileSize等

javascript - fineuploader 按钮不显示 IE7/8

javascript - 使用fineUploader 追加到表而不是 <li>

php - Fine Uploader 无法上传文件

angular - 我们如何将 Fine-uploader 与 Angular 5 一起使用?

ruby-on-rails - rack-cors 未能通过良好的 uploader 预检

fine-uploader - 使用 addInitialFiles 方法时出错

javascript - Fine Uploader 和 ServiceStack 设置响应 header

fine-uploader - 模板: Preview as background image