2

複数のファイルを 1 つのリクエストとしてアップロードする必要があります。たとえば、保存する必要がある 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 は、1 回のリクエストで複数のファイルを送信することをサポートしていません。これにより、コードが不必要に複雑になり、一部の既存の機能が損なわれる可能性があります。各ファイルは個別のリクエストで送信されます。アップロードを防ぐためにサーバー側のチェックを実行していると言いますが、サーバーがこれらの比較を実行できるようになるまでに、ファイルはすでにアップロードされています。あなたの質問からは、1 回のリクエストで複数のファイルをアップロードする必要がある理由や、これによってどのようなメリットが得られるのかが明確ではありません。明確にしていただければ、別の提案を提供できるかもしれません。

于 2013-10-08T18:52:01.600 に答える