一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

JS 文件大小判斷的實現(xiàn)代碼

 woshishenxiande 2011-07-19
有時候我們的圖片上傳等功能,需要驗證客戶端的圖片大小,比較只能上傳小于100K的圖片,這里客戶端先簡單的驗證下。
方法一,利用ActiveX控件實現(xiàn):
復制代碼 代碼如下:

<script type="text/javascript">
function getFileSize(filePath)
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
alert("文件大小為:"+fso.GetFile(filePath).size);
}
</script>
<body>
<INPUT TYPE="file" NAME="file" SIZE="30" onchange="getFileSize(this.value);">
</body>

這個方法在IE可以用,不足之處會有安全提示,把文件名改為.hta則會屏蔽掉安全提示。
方法二,利用img的dynsrc屬性:
復制代碼 代碼如下:

<script type="text/javascript">
function getFileSize(filePath)
{
var image=new Image();
image.dynsrc=filePath;
alert(image.fileSize);
}
</script>
<body>
<INPUT TYPE="file" NAME="file" SIZE="30" onchange="getFileSize(this.value)">
</body>

這個方法在IE6可以用,在IE7,IE8,F(xiàn)irefox,chrome不能用。
方法三,利用img的fileSize:
復制代碼 代碼如下:

<script language=javascript>
var ImgObj=new Image(); //建立一個圖像對象
var AllImgExt=".jpg|.jpeg|.gif|.bmp|.png|"http://全部圖片格式類型
var FileObj,ImgFileSize,ImgWidth,ImgHeight,FileExt,ErrMsg,FileMsg,HasCheked,IsImg//全局變量 圖片相關(guān)屬性
//以下為限制變量
var AllowExt=".jpg|.gif|.doc|.txt|" //允許上傳的文件類型 ?為無限制 每個擴展名后邊要加一個"|" 小寫字母表示
//var AllowExt=0
var AllowImgFileSize=70; //允許上傳圖片文件的大小 0為無限制 單位:KB
var AllowImgWidth=500; //允許上傳的圖片的寬度 ?為無限制 單位:px(像素)
var AllowImgHeight=500; //允許上傳的圖片的高度 ?為無限制 單位:px(像素)
HasChecked=false;
function CheckProperty(obj) //檢測圖像屬性
{
FileObj=obj;
if(ErrMsg!="") //檢測是否為正確的圖像文件 返回出錯信息并重置
{
ShowMsg(ErrMsg,false);
return false; //返回
}
if(ImgObj.readyState!="complete") //如果圖像是未加載完成進行循環(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圖片文件擴展名:"+FileExt;
if(AllowImgWidth!=0&&AllowImgWidth<ImgWidth)
ErrMsg=ErrMsg+"\n圖片寬度超過限制。請上傳寬度小于"+AllowImgWidth+"px的文件,當前圖片寬度為"+ImgWidth+"px";
if(AllowImgHeight!=0&&AllowImgHeight<ImgHeight)
ErrMsg=ErrMsg+"\n圖片高度超過限制。請上傳高度小于"+AllowImgHeight+"px的文件,當前圖片高度為"+ImgHeight+"px";
if(AllowImgFileSize!=0&&AllowImgFileSize<ImgFileSize)
ErrMsg=ErrMsg+"\n圖片文件大小超過限制。請上傳小于"+AllowImgFileSize+"KB的文件,當前文件大小為"+ImgFileSize+"KB";
if(ErrMsg!="")
ShowMsg(ErrMsg,false);
else
ShowMsg(FileMsg,true);
}
ImgObj.onerror=function(){ErrMsg='\n圖片格式不正確或者圖片已損壞!'}
function ShowMsg(msg,tf) //顯示提示信息 tf=true 顯示文件信息 tf=false 顯示錯誤信息 msg-信息內(nèi)容
{
msg=msg.replace("\n","<li>");
msg=msg.replace(/\n/gi,"<li>");
if(!tf)
{
document.all.UploadButton.disabled=true;
FileObj.outerHTML=FileObj.outerHTML;
MsgList.innerHTML=msg;
HasChecked=false;
}
else
{
document.all.UploadButton.disabled=false;
if(IsImg)
PreviewImg.innerHTML="<img src='"+ImgObj.src+"' width='60' height='60'>"
else
PreviewImg.innerHTML="非圖片文件";
MsgList.innerHTML=msg;
HasChecked=true;
}
}
function CheckExt(obj)
{
ErrMsg="";
FileMsg="";
FileObj=obj;
IsImg=false;
HasChecked=false;
PreviewImg.innerHTML="預覽區(qū)";
if(obj.value=="")return false;
MsgList.innerHTML="文件信息處理中...";
document.all.UploadButton.disabled=true;
FileExt=obj.value.substr(obj.value.lastIndexOf(".")).toLowerCase();
if(AllowExt!=0&&AllowExt.indexOf(FileExt+"|")==-1) //判斷文件類型是否允許上傳
{
ErrMsg="\n該文件類型不允許上傳。請上傳 "+AllowExt+" 類型的文件,當前文件類型為"+FileExt;
ShowMsg(ErrMsg,false);
return false;
}
if(AllImgExt.indexOf(FileExt+"|")!=-1) //如果圖片文件,則進行圖片信息處理
{
IsImg=true;
ImgObj.src=obj.value;
CheckProperty(obj);
return false;
}
else
{
FileMsg="\n文件擴展名:"+FileExt;
ShowMsg(FileMsg,true);
}
}
function SwitchUpType(tf)
{
if(tf)
str='<input type="file" name="file1" onchange="CheckExt(this)" style="width:180px;">'
else
str='<input type="text" name="file1" onblur="CheckExt(this)" style="width:180px;">'
document.all.file1.outerHTML=str;
document.all.UploadButton.disabled=true;
MsgList.innerHTML="";
}
</script>
<form enctype="multipart/form-data" method="POST" onsubmit="return HasChecked;">
<fieldset style="width: 372; height: 60;padding:2px;">
<legend><font color="#FF0000">圖片來源</font></legend>
<input type="radio" name="radio1" checked onclick="SwitchUpType(true);">本地<input type="radio" name="radio1" onclick="SwitchUpType(false);">遠程:<input type="file" name="file1" onchange="CheckExt(this)" style="width:180px;"> <input type="submit" id="UploadButton" value="開始上傳" disabled>
<div style="border:1 solid #808080;background:#E0E0E0;width100%;height:20px;color:#606060;padding:5px;">
<table border="0"><tr><td width="60" id="PreviewImg">預覽區(qū)</td><td id="MsgList" valign="top"></td></tr></table>
</div>
</fieldset>
</form>

在IE,F(xiàn)ireFox,chrome都可以用,不過只判斷圖片文件的大小。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    欧美性高清一区二区三区视频| 91人妻人人做人碰人人九色| 中文字幕一区二区久久综合| 翘臀少妇成人一区二区| 激情内射亚洲一区二区三区| 在线免费看国产精品黄片| 午夜国产精品福利在线观看| 日本成人中文字幕一区| 亚洲视频在线观看免费中文字幕| 欧美成人高清在线播放| 粉嫩一区二区三区粉嫩视频| 中文字幕亚洲人妻在线视频| 男人和女人黄 色大片| 免费在线观看欧美喷水黄片| 欧美一区二区三区99| 中文字幕高清不卡一区| 99久免费精品视频在线观| 日本免费一级黄色录像| 国语久精品在视频在线观看| 国产av熟女一区二区三区四区 | 人妻内射在线二区一区| 日韩人妻免费视频一专区 | 我的性感妹妹在线观看| 欧美日韩综合在线第一页| 中文字幕中文字幕在线十八区 | 老司机精品视频在线免费看| 亚洲精品黄色片中文字幕| 国产av熟女一区二区三区四区| 精品偷拍一区二区三区| 欧美极品欧美精品欧美| 亚洲综合香蕉在线视频| 亚洲一区二区三区有码| 好吊日在线视频免费观看| 98精品永久免费视频| 欧美日韩在线视频一区| 五月激情综合在线视频| 色婷婷视频国产一区视频| 日本午夜免费观看视频| 熟妇久久人妻中文字幕| 青青操在线视频精品视频| 亚洲一区二区精品免费|