亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

js獲取上傳文件選中的圖片大小、尺寸,需要兼容ie6+、chrome、ff

js獲取上傳文件選中的圖片大小、尺寸,需要兼容ie6+、chrome、ff

<!DOCTYPE?html?> <html?xmlns="http://www.w3.org/1999/xhtml"> <head> <meta?http-equiv="Content-Type"?content="text/html;?charset=gb2312"?/> <title></title> <script?type="text/javascript"> var?maxSize?=?2*1024*1024;//定義最大為2M。 var?errMsg?=?"上傳的附件文件不能超過2M!"; var?tipMsg?=?"您的瀏覽器暫不支持計算上傳文件的大小,確保上傳文件不要超過2M,建議使用IE、FireFox、Chrome瀏覽器。"; var?browserCfg?=?{}; var?ua?=?window.navigator.userAgent; //?ie瀏覽器 if?(ua.indexOf("MSIE")?>=?1){ browserCfg.ie?=?true; }else?if(ua.indexOf("Trident")?>=?1){ browserCfg.ie11?=?true; } //?火狐瀏覽器 else?if(ua.indexOf("Firefox")?>=?1){ browserCfg.firefox?=?true; } //?谷歌瀏覽器 else?if(ua.indexOf("Chrome")?>=?1){ browserCfg.chrome?=?true; } /** ?*?獲取圖片的尺寸 ?*/ function?getImageWAndH(){ var?w?=?0; var?h?=?0; var?size?=?0; ????var?pic?=?document.getElementById("pic"); var?picValue?=?pic.value; ????var?img?=?new?Image(); ????img.onload?=?function(){//再綁定onload事件 img.onload?=?null;//解除onload事件 ????????w?=?img.width; h?=?img.height; alert(w?+?"-1-"?+?h); ????}; ????img.src?=?picValue; //?防止img未加載完成,重新獲取尺寸 if(w?==?0?||?h?==?0){ w?=?img.width; h?=?img.height; alert(w?+?"-2-"?+?h); } size?=?getImageSize(pic); alert(w?+?"-3-"?+?h); //?獲取img.onload事件中賦值的參數,需要延遲加載一下 setTimeout(function(){ alert("寬:"?+?w?+?"-高:"?+?h?+?"-大?。??+?size); },10); } /** ?*?獲取圖片的大小 ?*/ function?getImageSize(obj){ try{ var?fileSize?=?0; //?如果當前瀏覽器為火狐或者chrome或者為ie11 if(browserCfg.firefox?||?browserCfg.chrome?||?browserCfg.ie11){ fileSize?=?obj.files[0].size; } //?如果當前瀏覽器為ie else?if(browserCfg.ie){ //?img標簽(jsp頁面中一定要有)負責獲取文件大小 var?imgTag?=?document.getElementById('img'); imgTag.dynsrc=obj.value; fileSize?=?imgTag.fileSize; } //?如果當前瀏覽器不為谷歌火狐或者ie,則提示 else{ return?tipMsg; } if(fileSize==-1){ return?tipMsg; }else?if(fileSize?>?maxSize){ return?errMsg; }else{ return?fileSize?+?"?B大小"; } }catch(e){ return?"錯誤了"; } } </script> </head> ? <body> <input?type="file"?id="pic"?/> <img?id="img"?style="display:none"> <input?type="button"?value="上傳"?onclick="getImageWAndH()"?/> </body> </html>目前在我本地ie下可以正常獲取大小、尺寸,但是別人的ie下獲取不了大小,而且在chrome中能獲取大小,但是獲取不了尺寸。請教各位前端前輩。。。請指教,很著急
查看完整描述

2 回答

已采納
?
一毛錢

TA貢獻156條經驗 獲得超57個贊

這是瀏覽器的安全問題,是你獲取的文件路徑不是真實的路徑,這種問題處理方法,有兩種

  1. 上傳文件到指定的目錄,然后再進行相關的操作(推薦使用這種方式)

  2. 設置瀏覽器的安全性,具體設置:選中瀏覽器的工具 -> Internet選項 -> 安全 -> 自定義級別 -> 找到“其他”中的“將本地文件上載至服務器時包含本地目錄路徑”,選中“啟用”就能解決問題。

查看完整回答
反對 回復 2015-12-03
  • 慕冬雪
    慕冬雪
    你好,謝謝你。目前的要求就是不經過后臺,這樣的話你說的第一條就不能實現了吧(純js,不用插件)?關于第二條,我知道這一條, 也試過是可以, 但是程序是給用戶用的,用戶并不懂這些,更不想去做這些,所以,還是不可行。不過還是很謝謝你的。
  • 慕冬雪
    慕冬雪
    非常感謝!
  • 2 回答
  • 1 關注
  • 3768 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號