diff --git a/demo/src/main/webapp/js/ng-file-upload-all.js b/demo/src/main/webapp/js/ng-file-upload-all.js index e3423511..956eab3a 100644 --- a/demo/src/main/webapp/js/ng-file-upload-all.js +++ b/demo/src/main/webapp/js/ng-file-upload-all.js @@ -1911,29 +1911,29 @@ ngFileUpload.service('UploadValidate', ['UploadDataUrl', '$q', '$timeout', funct var deffer = $q.defer(); var promises = []; - promises.push(validateAsync('maxHeight', 'height.max', /image/, + promises.push(validateAsync('maxHeight', 'height.max', /image|video/, this.imageDimensions, function (d, val) { return d.height <= val; })); - promises.push(validateAsync('minHeight', 'height.min', /image/, + promises.push(validateAsync('minHeight', 'height.min', /image|video/, this.imageDimensions, function (d, val) { return d.height >= val; })); - promises.push(validateAsync('maxWidth', 'width.max', /image/, + promises.push(validateAsync('maxWidth', 'width.max', /image|video/, this.imageDimensions, function (d, val) { return d.width <= val; })); - promises.push(validateAsync('minWidth', 'width.min', /image/, + promises.push(validateAsync('minWidth', 'width.min', /image|video/, this.imageDimensions, function (d, val) { return d.width >= val; })); - promises.push(validateAsync('dimensions', null, /image/, + promises.push(validateAsync('dimensions', null, /image|video/, function (file, val) { return upload.emptyPromise(val); }, function (r) { return r; })); - promises.push(validateAsync('ratio', null, /image/, + promises.push(validateAsync('ratio', null, /image|video/, this.imageDimensions, function (d, val) { var split = val.toString().split(','), valid = false; for (var i = 0; i < split.length; i++) { @@ -1943,21 +1943,21 @@ ngFileUpload.service('UploadValidate', ['UploadDataUrl', '$q', '$timeout', funct } return valid; })); - promises.push(validateAsync('maxRatio', 'ratio.max', /image/, + promises.push(validateAsync('maxRatio', 'ratio.max', /image|video/, this.imageDimensions, function (d, val) { return (d.width / d.height) - upload.ratioToFloat(val) < 0.0001; })); - promises.push(validateAsync('minRatio', 'ratio.min', /image/, + promises.push(validateAsync('minRatio', 'ratio.min', /image|video/, this.imageDimensions, function (d, val) { return (d.width / d.height) - upload.ratioToFloat(val) > -0.0001; })); promises.push(validateAsync('maxDuration', 'duration.max', /audio|video/, this.mediaDuration, function (d, val) { - return d <= upload.translateScalars(val); + return d.duration <= upload.translateScalars(val); })); promises.push(validateAsync('minDuration', 'duration.min', /audio|video/, this.mediaDuration, function (d, val) { - return d >= upload.translateScalars(val); + return d.duration >= upload.translateScalars(val); })); promises.push(validateAsync('duration', null, /audio|video/, function (file, val) { @@ -2007,13 +2007,21 @@ ngFileUpload.service('UploadValidate', ['UploadDataUrl', '$q', '$timeout', funct var deferred = $q.defer(); $timeout(function () { if (file.type.indexOf('image') !== 0) { - deferred.reject('not image'); - return; + if(file.type.indexOf('video') === 0){ + return upload.mediaDuration(file).then(function(res){ + deferred.resolve(res); + },function(){ + deferred.reject('video dimension problem'); + }); + } else { + deferred.reject('not image'); + return; + } } upload.dataUrl(file).then(function (dataUrl) { var img = angular.element('').attr('src', dataUrl) - .css('visibility', 'hidden').css('position', 'fixed') - .css('max-width', 'none !important').css('max-height', 'none !important'); + .css('visibility', 'hidden').css('position', 'fixed') + .css('max-width', 'none !important').css('max-height', 'none !important'); function success() { var width = img[0].naturalWidth || img[0].clientWidth; @@ -2066,7 +2074,7 @@ ngFileUpload.service('UploadValidate', ['UploadDataUrl', '$q', '$timeout', funct if (file.$ngfDuration) { var d = $q.defer(); $timeout(function () { - d.resolve(file.$ngfDuration); + d.resolve({width: file.$ngfWidth, height: file.$ngfHeight, duration: file.$ngfDuration}); }); return d.promise; } @@ -2080,13 +2088,20 @@ ngFileUpload.service('UploadValidate', ['UploadDataUrl', '$q', '$timeout', funct } upload.dataUrl(file).then(function (dataUrl) { var el = angular.element(file.type.indexOf('audio') === 0 ? '