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