jQuery獲取file控件中圖片的寬高與大小
問(wèn)題
如何判斷input file表單里上傳的圖片的寬高和大小呢?
解決方案
這個(gè)時(shí)候圖片還沒真正上傳,也不是在頁(yè)面上展示,不能使用$(“#id”).width(),$(“#id”).height()
這種方式。
在Stack Overflow找到一個(gè)方法獲取input file圖片文件的寬高:
var _URL = window.URL || window.webkitURL; $("#file").change(function (e) { var file, img; if ((file = this.files[0])) { img = new Image(); img.onload = function () { alert(this.width + " " + this.height); }; img.src = _URL.createObjectURL(file); } });
發(fā)現(xiàn)可以用,僅在火狐中測(cè)試了,其他瀏覽器兼容性未知,因?yàn)楹笈_(tái)使用,所以暫且不管兼容性,拿來(lái)封裝了一下。
我把這個(gè)函數(shù)完善了一下,獲取input file圖片的寬高和大小,如下:
//獲取input圖片寬高和大小 function getImageWidthAndHeight(id, callback) { var _URL = window.URL || window.webkitURL; $("#" + id).change(function (e) { var file, img; if ((file = this.files[0])) { img = new Image(); img.onload = function () { callback && callback({"width": this.width, "height": this.height, "filesize": file.size}); }; img.src = _URL.createObjectURL(file); } }); }
這里使用了一個(gè)回調(diào)方法,回調(diào)方法的參數(shù)是這個(gè)json對(duì)象,包含寬度、高度和大小,在jQuery中這樣調(diào)用:
(function () { //省略其他代碼 getImageWidthAndHeight('image_file', function (obj) { if (obj.width != 843 || obj.height != 1038) { $.messager.alert('操作提示', '彈窗圖片寬高必須是843*1038px'); } }); })(jQuery)
好了,這樣就OK了。以上就是jQuery獲取intput file圖片的寬高和大小的全部?jī)?nèi)容了,相信本文的內(nèi)容會(huì)對(duì)大家平時(shí)使用jQuery和圖片上傳的時(shí)候很有幫助的。
- jquery ajaxfileuplod 上傳文件 essyui laoding 效果【防止重復(fù)上傳文件】
- jquery-file-upload 文件上傳帶進(jìn)度條效果
- jQuery插件ajaxFileUpload使用詳解
- jQuery File Upload文件上傳插件使用詳解
- jQuery插件ajaxFileUpload異步上傳文件
- Asp.net MVC中使用JQuery插件ajaxFileUpload上傳文件
- 從重置input file標(biāo)簽中看jQuery的 .val() 和 .attr(“value”) 區(qū)別
- jQuery插件ajaxfileupload.js實(shí)現(xiàn)上傳文件
- JQuery fileupload插件實(shí)現(xiàn)文件上傳功能
- jquery獲取file表單選擇文件的路徑、名字、大小、類型
相關(guān)文章
jQuery實(shí)現(xiàn)的Tab滑動(dòng)選項(xiàng)卡及圖片切換(多種效果)小結(jié)
這篇文章主要介紹了jQuery實(shí)現(xiàn)的Tab滑動(dòng)選項(xiàng)卡及圖片切換效果小結(jié),實(shí)例總結(jié)了幾種常見的tab切換效果,包括鼠標(biāo)點(diǎn)擊切換、滑過(guò)切換、定時(shí)自動(dòng)切換等,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-09-09google jQuery 引用文件,jQuery 引用地址集合(jquery 1.2.6至jquery1.5.2)
很多網(wǎng)站都是使用這種方式引入,客戶的瀏覽器可能已經(jīng)緩存過(guò)了 jquery??梢灾苯诱{(diào)用本地的,速度更快2011-04-04基于jQuery實(shí)現(xiàn)頂部導(dǎo)航欄功能
這篇文章主要為大家詳細(xì)介紹了基于jQuery實(shí)現(xiàn)頂部導(dǎo)航欄功能,jQuery三級(jí)下拉列表導(dǎo)航菜單,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12批量修改標(biāo)簽css樣式以input標(biāo)簽為例
本節(jié)主要介紹了jquery如何批量修改標(biāo)簽css樣式以input標(biāo)簽為例,需要的朋友可以參考下2014-07-07jquery實(shí)現(xiàn)頁(yè)面圖片等比例放大縮小功能
本文將利用jquery實(shí)現(xiàn)頁(yè)面圖片等比例放大和縮小。說(shuō)明: 頁(yè)面中經(jīng)常需要將未知大小的圖片展示在有限的空間里, 如果直接指定圖片的width和height值, 就有可能造成圖片走樣, 這段代碼就是為解決這個(gè)問(wèn)題設(shè)計(jì)2014-02-02幾種二級(jí)聯(lián)動(dòng)案例(jQuery\Array\Ajax php)
這篇文章主要為大家詳細(xì)介紹了幾種二級(jí)聯(lián)動(dòng)案例(jQuery\Array\Ajax php),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08jQuery標(biāo)簽替換函數(shù)replaceWith()的使用例子
這篇文章主要介紹了jQuery標(biāo)簽替換函數(shù)replaceWith()的使用例子,使用replaceWith可以替換模板里的標(biāo)簽,還可以實(shí)現(xiàn)多語(yǔ)言網(wǎng)站,需要的朋友可以參考下2014-08-08