上傳的js驗(yàn)證(圖片/文件的擴(kuò)展名)
更新時(shí)間:2013年04月25日 14:31:09 作者:
下文給大家介紹下js 驗(yàn)證上傳圖片以及怎樣控制一個(gè)上傳文件的擴(kuò)展名,感興趣的朋友可以參考下哈,希望對你有所幫助
js 驗(yàn)證上傳圖片
var ImgObj=new Image();//建立一個(gè)圖像對象
varAllImgExt=".jpg|.jpeg|.gif|.bmp|.png|"http://全部圖片格式類型
varFileObj,ImgFileSize,ImgWidth,ImgHeight,FileExt,ErrMsg,FileMsg,IsImg//全局變量圖片相關(guān)屬性
//以下為限制變量
var AllowExt=""; //允許上傳的文件類型ŀ為無限制每個(gè)擴(kuò)展名后邊要加一個(gè)"|" 小寫字母表示
var AllowImgFileSize=100;//允許上傳圖片文件的大小 0為無限制 單位:KB
var AllowImgWidth=385; //允許上傳的圖片的寬度Ɓ為無限制 單位:px(像素)
var AllowImgHeight=441; //允許上傳的圖片的高度ƹ為無限制 單位:px(像素)
function CheckProperty(obj) //檢測圖像屬性
{
FileObj=obj;
if(ImgObj.readyState!="complete")//如果圖像是未加載完成進(jìn)行循環(huán)檢測
{
setTimeout("CheckProperty(FileObj)",500);
return false;
}
ImgFileSize=Math.round(ImgObj.fileSize/1024*100)/100;//取得圖片文件的大小
ImgWidth=ImgObj.width;//取得圖片的寬度
ImgHeight=ImgObj.height; //取得圖片的高度
FileMsg="\n圖片大小:"+ImgWidth+"*"+ImgHeight+"px";
FileMsg=FileMsg+"\n圖片文件大小:"+ImgFileSize+"Kb";
FileMsg=FileMsg+"\n圖片文件擴(kuò)展名:"+FileExt+"\n可以上傳!";
ErrMsg="";
if(AllowImgWidth!=ImgWidth)
ErrMsg=ErrMsg+"\n請上傳寬度等于"+AllowImgWidth+"px的文件,當(dāng)前圖片寬度為"+ImgWidth+"px";
if(AllowImgHeight!=ImgHeight)
ErrMsg=ErrMsg+"\n請上傳高度等于"+AllowImgHeight+"px的文件,當(dāng)前圖片高度為"+ImgHeight+"px";
if(AllowImgFileSize!=0&&AllowImgFileSize<ImgFileSize)
ErrMsg=ErrMsg+"\n請上傳小于"+AllowImgFileSize+"KB的文件,當(dāng)前文件大小為"+ImgFileSize+"KB";
if(ErrMsg!="")
{
alert(ErrMsg);
return false;
}
else
return true;
}//end CheckProperty();
ImgObj.onerror=function(){ErrMsg='\n圖片格式不正確或者圖片已損壞!';}
function CheckExt(obj)
{
ErrMsg="";
FileMsg="";
IsImg=false;
if(obj.value=="")
return false;
FileExt=obj.value.substr(obj.value.lastIndexOf(".")).toLowerCase();
if(AllImgExt.indexOf(FileExt+"|")!=-1)//如果圖片文件,則進(jìn)行圖片信息處理
{
IsImg=true;
FileObj=obj;
ImgObj.src=obj.value;
returnCheckProperty(obj);
}else
{
alert("該文件類型不允許上傳。請上傳"+AllImgExt+"類型的文件,\n當(dāng)前文件類型為"+FileExt);
obj.value='';
return false;
}
}
上傳的js驗(yàn)證
下文給大家介紹怎樣控制一個(gè)上傳文件的擴(kuò)展名。
js:
function check2()
{
var file = document.getElementsByName("file").value;
if(file=="")
{
alert("請選擇文件");
return false;
}
var strTemp = file.split(".");
var strCheck = strTemp[strTemp.length-1];
if(strCheck.toUpperCase()=='JPG')
{
return true;
}else
{
alert('上傳文件類型不對!');
return false;
}
}
表單:
<form action="*.jsp" method="post" onsubmit="return check()">
<input type="file" name="file">
<input type="submit" value="上傳">
</form>
需要注意的是,document.getElementsByName("file").value獲取的是所上傳的文件的絕對路徑,故使用字符串分割法將文件的拓展名分割出來,然后再進(jìn)行判斷。
復(fù)制代碼 代碼如下:
var ImgObj=new Image();//建立一個(gè)圖像對象
varAllImgExt=".jpg|.jpeg|.gif|.bmp|.png|"http://全部圖片格式類型
varFileObj,ImgFileSize,ImgWidth,ImgHeight,FileExt,ErrMsg,FileMsg,IsImg//全局變量圖片相關(guān)屬性
//以下為限制變量
var AllowExt=""; //允許上傳的文件類型ŀ為無限制每個(gè)擴(kuò)展名后邊要加一個(gè)"|" 小寫字母表示
var AllowImgFileSize=100;//允許上傳圖片文件的大小 0為無限制 單位:KB
var AllowImgWidth=385; //允許上傳的圖片的寬度Ɓ為無限制 單位:px(像素)
var AllowImgHeight=441; //允許上傳的圖片的高度ƹ為無限制 單位:px(像素)
function CheckProperty(obj) //檢測圖像屬性
{
FileObj=obj;
if(ImgObj.readyState!="complete")//如果圖像是未加載完成進(jìn)行循環(huán)檢測
{
setTimeout("CheckProperty(FileObj)",500);
return false;
}
ImgFileSize=Math.round(ImgObj.fileSize/1024*100)/100;//取得圖片文件的大小
ImgWidth=ImgObj.width;//取得圖片的寬度
ImgHeight=ImgObj.height; //取得圖片的高度
FileMsg="\n圖片大小:"+ImgWidth+"*"+ImgHeight+"px";
FileMsg=FileMsg+"\n圖片文件大小:"+ImgFileSize+"Kb";
FileMsg=FileMsg+"\n圖片文件擴(kuò)展名:"+FileExt+"\n可以上傳!";
ErrMsg="";
if(AllowImgWidth!=ImgWidth)
ErrMsg=ErrMsg+"\n請上傳寬度等于"+AllowImgWidth+"px的文件,當(dāng)前圖片寬度為"+ImgWidth+"px";
if(AllowImgHeight!=ImgHeight)
ErrMsg=ErrMsg+"\n請上傳高度等于"+AllowImgHeight+"px的文件,當(dāng)前圖片高度為"+ImgHeight+"px";
if(AllowImgFileSize!=0&&AllowImgFileSize<ImgFileSize)
ErrMsg=ErrMsg+"\n請上傳小于"+AllowImgFileSize+"KB的文件,當(dāng)前文件大小為"+ImgFileSize+"KB";
if(ErrMsg!="")
{
alert(ErrMsg);
return false;
}
else
return true;
}//end CheckProperty();
ImgObj.onerror=function(){ErrMsg='\n圖片格式不正確或者圖片已損壞!';}
function CheckExt(obj)
{
ErrMsg="";
FileMsg="";
IsImg=false;
if(obj.value=="")
return false;
FileExt=obj.value.substr(obj.value.lastIndexOf(".")).toLowerCase();
if(AllImgExt.indexOf(FileExt+"|")!=-1)//如果圖片文件,則進(jìn)行圖片信息處理
{
IsImg=true;
FileObj=obj;
ImgObj.src=obj.value;
returnCheckProperty(obj);
}else
{
alert("該文件類型不允許上傳。請上傳"+AllImgExt+"類型的文件,\n當(dāng)前文件類型為"+FileExt);
obj.value='';
return false;
}
}
上傳的js驗(yàn)證
下文給大家介紹怎樣控制一個(gè)上傳文件的擴(kuò)展名。
js:
復(fù)制代碼 代碼如下:
function check2()
{
var file = document.getElementsByName("file").value;
if(file=="")
{
alert("請選擇文件");
return false;
}
var strTemp = file.split(".");
var strCheck = strTemp[strTemp.length-1];
if(strCheck.toUpperCase()=='JPG')
{
return true;
}else
{
alert('上傳文件類型不對!');
return false;
}
}
表單:
復(fù)制代碼 代碼如下:
<form action="*.jsp" method="post" onsubmit="return check()">
<input type="file" name="file">
<input type="submit" value="上傳">
</form>
需要注意的是,document.getElementsByName("file").value獲取的是所上傳的文件的絕對路徑,故使用字符串分割法將文件的拓展名分割出來,然后再進(jìn)行判斷。
您可能感興趣的文章:
- js實(shí)現(xiàn)滑動(dòng)滑塊驗(yàn)證登錄
- javascript實(shí)現(xiàn)支付寶滑塊驗(yàn)證碼效果
- 原生JS封裝拖動(dòng)驗(yàn)證滑塊的實(shí)現(xiàn)代碼示例
- php+js實(shí)現(xiàn)的拖動(dòng)滑塊驗(yàn)證碼驗(yàn)證表單操作示例【附源碼下載】
- Node.JS用純JavaScript生成圖片或滑塊式驗(yàn)證碼功能
- Vue 實(shí)現(xiàn)拖動(dòng)滑塊驗(yàn)證功能(只有css+js沒有后臺(tái)驗(yàn)證步驟)
- 基于JS組件實(shí)現(xiàn)拖動(dòng)滑塊驗(yàn)證功能(代碼分享)
- Javascript 驗(yàn)證上傳圖片大小[客戶端]
- node.js WEB開發(fā)中圖片驗(yàn)證碼的實(shí)現(xiàn)方法
- js+cavans實(shí)現(xiàn)圖片滑塊驗(yàn)證
相關(guān)文章
學(xué)習(xí)JavaScript事件流和事件處理程序
這篇文章主要為大家介紹了學(xué)習(xí)JavaScript事件流和事件處理程序的注意事項(xiàng),感興趣的小伙伴們可以參考一下2016-01-01
如何在指定的地方插入html內(nèi)容和文本內(nèi)容
本文為大家介紹個(gè)小技巧可以在指定的地方插入html內(nèi)容和文本內(nèi)容,示例如下,感興趣的朋友可以參考下2013-12-12
如何使用bootstrap框架 bootstrap入門必看!
如何使用bootstrap?這篇文章就是告訴大家如何使用bootstrap框架,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
JavaScript獲取圖片像素顏色并轉(zhuǎn)換為box-shadow顯示
這篇文章主要介紹了JavaScript獲取圖片像素顏色并轉(zhuǎn)換為box-shadow顯示的方法,用到了HTML5中的FileReader API和getImageData,轉(zhuǎn)換為的CSS3 box-shadow也要注意瀏覽器的兼容問題,需要的朋友可以參考下2016-03-03
關(guān)于VSCode格式化JS自動(dòng)添加或去掉分號(hào)的問題
這篇文章主要介紹了VSCode格式化JS自動(dòng)添加或去掉分號(hào)的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10

