Authored by xuhongyun

add size limit and width and height limit

... ... @@ -11,7 +11,18 @@ $.fn.ajaxfileupload = function(options) {
onCancel: function() {},
validate_extensions: true,
valid_extensions: ['gif', 'png', 'jpg', 'jpeg'],
submit_button: null
// added by xuhongyun for upload limit
// 上传大小: 单位kb, 默认限制50mb
// size="500" spec="1500*1500"
size_limit: 50 * 1024,
// 图片规格 width * heith,单位px, 默认不限制
valid_spec: false,
width_limit: 0,
height_limit: 0,
// end added
submit_button: null
};
var uploading_file = false;
... ... @@ -27,6 +38,27 @@ $.fn.ajaxfileupload = function(options) {
if (extend) {
settings.valid_extensions = extend.split(',');
}
// add by xuhongyun for upload limit
var size = $element.attr("size");
if (size) {
settings.size_limit = parseInt(size);
}
var spec = $element.attr("spec");
if (spec) {
var array = spec.split('*');
if (array.length == 2) {
settings.width_limit = parseInt(array[0]);
settings.height_limit = parseInt(array[1]);
}
if (settings.width_limit != 0 && settings.height_limit != 0) {
settings.valid_spec = true;
}
}
// end added
// var bucket = $element.attr("bucket");
// if(bucket){
// settings.params.bucket=bucket;
... ... @@ -54,6 +86,60 @@ $.fn.ajaxfileupload = function(options) {
var ext = $element.val().split('.').pop().toLowerCase();
console.log(settings.validate_extensions);
// add by xuhongyun for upload limit
var files = $element[0].files;
if (files) {
$.each(files, function(index, file) {
// 加载图片,为了获取图片大小
var windowURL = window.URL || window.webkitURL;
var dataURL = windowURL.createObjectURL(file);
var frame_id = 'preview-' + Math.round(new Date().getTime());
$('<img id="' + frame_id +'" />').appendTo('body').attr("src", dataURL);
var img = $('#' + frame_id)[0];
// if (img.complete) {
// alert("加载完成");
// }
// else {
img.onload = function() {
var width = img.offsetWidth,
height = img.offsetHeight;
if (settings.valid_spec == true
&& Math.abs(width - settings.width_limit) > 10
&& Math.abs(height - settings.height_limit) > 10 ) {
// 图片规格超出限制
settings.onComplete.apply($element, [{
status: false,
message: '只允许上传' + settings.width_limit + '*' + settings.height_limit + '的文件,第' + (index+1) + '个文件不符合要求'
}, settings.params]);
var _$element = $element.clone();
var _$parent = $element.parent();
$element.remove();
_$parent.append(_$element);
_$element.ajaxfileupload(settings);
}
// }
};
if (file.size / 1024 > settings.size_limit) {
// 上传大小超出限制。
settings.onComplete.apply($element, [{
status: false,
message: '只允许上传大小' + settings.size_limit + 'KB以内的文件,第' + (index + 1) + '个文件不符合要求'
}, settings.params]);
var _$element = $element.clone();
var _$parent = $element.parent();
$element.remove();
_$parent.append(_$element);
_$element.ajaxfileupload(settings);
return;
}
});
}
// end added
if (true === settings.validate_extensions && $.inArray(ext, settings.valid_extensions) == -1) {
settings.onComplete.apply($element, [{
status: false,
... ...