2016-12-16 18 views
2

我使用的是的5.11.10版本。如何在提交到服务器并验证之前获取Fine Uploader中图像的尺寸?

我知道Fine Uploader中有一个validation功能,它允许设置上传图片的最大/最小宽度/高度。但这对我来说还不够。因为我想设置预定义的宽度和高度值对的列表,所以如果图像的尺寸匹配其中一个预定义的宽度和高度对,那么图像将通过验证。

我检出了onValidateonSubmit回调。他们都没有提供有关尺寸的任何信息。 onSubmit通过使用getFile方法接收可用于获取文件的图像的ID。但getFile也不给出尺寸。

那么,有什么建议吗?

回答

2

在搜索一段时间后回答我自己的问题。

我借用Fine Uploader的source code的逻辑来确定图像的尺寸。关键是要在onSubmit处理程序中返回承诺。

说明:my_custom_validation是此答案的范围之外的自定义方法。你应该有你自己的实现来满足你的需求。

onSubmit: function(id, name){ 
    var promise = new qq.Promise(); 
    var file = this.getFile(id); 
    var image = new Image(); 

    var url = window.URL && window.URL.createObjectURL ? window.URL : 
     window.webkitURL && window.webkitURL.createObjectURL ? window.webkitURL : 
     null; 

    image.onload = function(){ 
     if(my_custom_validation(this.width, this.height)){ 
      promise.success();  
     } else { 
      promise.failure(); 
     } 

    }; 

    image.src = url.createObjectURL(file); 

    return promise; 
} 
+0

这是行得通的。 :) – Shrabanee