Blame | Letzte Änderung | Log anzeigen | RSS feed
/** jQuery File Upload Validation Plugin* https://github.com/blueimp/jQuery-File-Upload** Copyright 2013, Sebastian Tschan* https://blueimp.net** Licensed under the MIT license:* http://www.opensource.org/licenses/MIT*//* global define, require, window */(function (factory) {'use strict';if (typeof define === 'function' && define.amd) {// Register as an anonymous AMD module:define(['jquery','./jquery.fileupload-process'], factory);} else if (typeof exports === 'object') {// Node/CommonJS:factory(require('jquery'));} else {// Browser globals:factory(window.jQuery);}}(function ($) {'use strict';// Append to the default processQueue:$.blueimp.fileupload.prototype.options.processQueue.push({action: 'validate',// Always trigger this action,// even if the previous action was rejected:always: true,// Options taken from the global options map:acceptFileTypes: '@',maxFileSize: '@',minFileSize: '@',maxNumberOfFiles: '@',disabled: '@disableValidation'});// The File Upload Validation plugin extends the fileupload widget// with file validation functionality:$.widget('blueimp.fileupload', $.blueimp.fileupload, {options: {/*// The regular expression for allowed file types, matches// against either file type or file name:acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,// The maximum allowed file size in bytes:maxFileSize: 10000000, // 10 MB// The minimum allowed file size in bytes:minFileSize: undefined, // No minimal file size// The limit of files to be uploaded:maxNumberOfFiles: 10,*/// Function returning the current number of files,// has to be overriden for maxNumberOfFiles validation:getNumberOfFiles: $.noop,// Error and info messages:messages: {maxNumberOfFiles: 'Maximum number of files exceeded',acceptFileTypes: 'File type not allowed',maxFileSize: 'File is too large',minFileSize: 'File is too small'}},processActions: {validate: function (data, options) {if (options.disabled) {return data;}var dfd = $.Deferred(),settings = this.options,file = data.files[data.index],fileSize;if (options.minFileSize || options.maxFileSize) {fileSize = file.size;}if ($.type(options.maxNumberOfFiles) === 'number' &&(settings.getNumberOfFiles() || 0) + data.files.length >options.maxNumberOfFiles) {file.error = settings.i18n('maxNumberOfFiles');} else if (options.acceptFileTypes &&!(options.acceptFileTypes.test(file.type) ||options.acceptFileTypes.test(file.name))) {file.error = settings.i18n('acceptFileTypes');} else if (fileSize > options.maxFileSize) {file.error = settings.i18n('maxFileSize');} else if ($.type(fileSize) === 'number' &&fileSize < options.minFileSize) {file.error = settings.i18n('minFileSize');} else {delete file.error;}if (file.error || data.files.error) {data.files.error = true;dfd.rejectWith(this, [data]);} else {dfd.resolveWith(this, [data]);}return dfd.promise();}}});}));