2012-05-01 45 views
0

我有一些jQuery的問題。我發現了一些解決方案來驗證上傳前圖像的大小。它也張貼在這裏:jQuery:如何在上傳之前驗證圖像的尺寸?

$.validator.addMethod('filesize', function(value, element, param) { 
    // param = size (in bytes) 
    // element = element to validate (<input>) 
    // value = value of the element (filename) 
    return this.optional(element) || (element.files[0].size <= param) 
}); 

我定義了一切,它完美的工作!但我也想驗證該圖像的寬度和高度。我試圖添加第二個方法是相同的像上面,而是我使用的高度或寬度尺寸,但是這不工作:

$.validator.addMethod('widthpic', function(value, element, param) { 
    return this.optional(element) || (element.files[0].width == param) 
}); 

對此有任何溶液?當然,我也在PHP中檢查了圖像的大小,但我想補充說,也是在jQuery風格。

+0

http://docs.fineuploader.com/branch/master/features/validation.html#image-validation –

回答

0

被用來讀取文件大小的東西是W3C File API。我沒有看到有任何參考文獻表明你可以確定寬度或高度。您必須等到服務器端,獲取圖像,然後使用像ImageMagick這樣的庫來檢查尺寸。

+0

第1步:將'File'變成數據URI。第2步:將「」的'src'屬性設置爲該數據URI。第3步:處理'onload'事件後檢查圖像的寬度/高度。 –

+0

@RayNicholus - 酷,聽起來像它一般工作......但它們在上傳文件之前有什麼幫助(這是在驗證預上傳期間發生的) – Ryley

+0

如果要驗證用戶提交的文件,你必須這樣做,預先上傳。我懷疑你選擇一個文件時會「迷惑」上傳。一旦文件正在上傳,它的字節已經被髮送到服務器。一旦用戶通過文件輸入刪除或選擇文件,只要瀏覽器支持File API,就可以對文件進行任何操作。 –

相關問題