如果已经实现了精细上传并且可以上传文件。我还将允许的扩展名设置为仅允许PDF。
但是当我尝试上传和jpg时,没有任何事情发生。
通常这不是问题,但我希望看到一条消息。这适用于fineuploader网站,但不适合我。
希望有人可以帮助我。
代码:
createUpload({ button: $('#dienstverleningsDocumentUploader'),
endpoint:'/adviseur/profile/dienstverleningsDocument/' + '@Model.Adviseur.ServiceDocumentID',
messages: $('#dienstverleningsDocumentMessage'), allowedExtensions: ['pdf'] });
function createUpload(options) {
var button = options.button[0];//Should be a jQuery $(...)
var endpoint = options.endpoint;
var allowedExtensions = options.allowedExtensions || ['doc', 'xls', 'docx', 'xlsx', 'pdf'];
var sizeLimit = options.sizeLimit || 10000000;// 10Mb
var itemLimit = options.itemLimit || 10;
var messages = options.messages || $('#messages');
var complete = options.complete;
return new qq.FineUploaderBasic({
button: button,
request: {
endpoint: endpoint
},
validation: {
allowedExtensions: allowedExtensions,
sizeLimit: sizeLimit,
itemLimit: itemLimit
},
callbacks: {
onSubmit: function (id, fileName) {
messages.html('<div id="file-' + id + '" class="alert" style="margin: 20px 0 0"></div>');
},
onUpload: function (id, fileName) {
$('#file-' + id).addClass('alert-info')
.html('<img src="client/loading.gif" alt="Initializing. Please hold."> ' +
'Initializing ' +
'“' + fileName + '”');
},
onProgress: function (id, fileName, loaded, total) {
if (loaded < total) {
progress = Math.round(loaded / total * 100) + '% of ' + Math.round(total / 1024) + ' kB';
$('#file-' + id).removeClass('alert-info')
.html('<img src="client/loading.gif" alt="In progress. Please hold."> ' +
'Uploading ' +
'“' + fileName + '” ' +
progress);
} else {
$('#file-' + id).addClass('alert-info')
.html('<img src="client/loading.gif" alt="Saving. Please hold."> ' +
'Saving ' +
'“' + fileName + '”');
}
},
onComplete: function (id, fileName, responseJSON) {
if (responseJSON.success) {
$('#file-' + id).removeClass('alert-info')
.addClass('alert-success')
.html('<i class="icon-ok"></i> ' +
'“' + fileName + '”' +
'succesvol.'
);
if (complete) {
complete(fileName, responseJSON);
}
} else {
$('#file-' + id).removeClass('alert-info')
.addClass('alert-error')
.html('<i class="icon-exclamation-sign"></i> ' +
'Uploaden mislukt bij: ' +
'“' + fileName + '”: ' +
responseJSON.error);
}
}
}
});
}
答案 0 :(得分:0)
主页和文档明确指出Fine Uploader Basic模式根本不提供任何UI元素。如果您使用的是Fine Uploader Basic模式,则您需要构建自己的UI并使用Fine Uploader的API和回调。所有错误消息(例如验证错误)都将发送到onError
回调。您可以贡献自己的onError
回调处理程序并自己显示错误消息。
例如,假设您在应用中使用bootbox.js。您的实例可能如下所示:
$('#uploaderContainer').fineUploader({
uploaderType: 'basic',
button: $('#dienstverleningsDocumentUploader'),
request: {
endpoint: '/adviseur/profile/dienstverleningsDocument/' + '@Model.Adviseur.ServiceDocumentID',
},
validation: {
allowedExtensions: ['pdf'],
sizeLimit: 10000000,
itemLimit: 10
}
})
.on('error', function(event, id, fileName, reason, maybeXhr) {
bootbox.alert(reason);
});
注意我在我的示例中使用了jQuery Fine Uploader插件。您也应该在项目中使用jQuery。有关此插件的详细信息,请参阅文档。
如果您想使用Fine Uploader附带的默认UI并稍微自定义它,您应该使用FineUploader
模式。这也在文档中进一步解释。