如何用javascript控制上傳文件的大小
更新時(shí)間:2006年10月26日 00:00:00 作者:
復(fù)制代碼 代碼如下:
<form name=Myform onsubmit="return CheckFileSize()">
<input type=file name=photo><br/>
<input type=submit value=submit></form>
<SCRIPT LANGUAGE="JavaScript"><!--
function CheckFileSize()
{
var s = document.Myform.photo.value;
if(s==" ")return false;
var img = new Image();
img.src = s;
alert("高 = "+ img.height + "\n寬 = "+ img.width);
alert("fileSize = "+ img.fileSize +" 字節(jié)");
return false;
}
//--></SCRIPT>
應(yīng)用了javascript和在IE下img本身的fileSize屬性。另外img還有其他的幾個(gè)屬性,如fileCreatedDate、fileModifiedDate、fileSize、fileUpdatedDate、filters,我們可以通過(guò)這些屬性來(lái)獲取圖片文件的部分信息,如文件大小,我們用file表單同img標(biāo)簽結(jié)合,就能夠在上傳之前判斷圖片文件的大小是否合法了。
復(fù)制代碼 代碼如下:
<input type="text" size="4" value="10" name="fileSizeLimit" id="fileSizeLimit"/> K
<input type="file" name="file1" id="file1" size="40" onchange="changeSrc(this)"/>
<img src="about:blank" id="fileChecker" alt="test" height="18"/>
<script type="text/javascript">
var oFileChecker = document.getElementById("fileChecker");
function changeSrc(filePicker)
{
oFileChecker.src = filePicker.value;
}
oFileChecker.onreadystatechange = function ()
{
if (oFileChecker.readyState == "complete")
{
checkSize();
}
}
function checkSize()
{
var limit = document.getElementById("fileSizeLimit").value * 1024;
if (oFileChecker.fileSize > limit)
{
alert("too large");
}
else
{
alert("ok");
}
}
</script>
復(fù)制代碼 代碼如下:
function CheckFileSize()
{
var FileMaxSize = 100;//限制上傳的文件大小,單位(k)
var s = document.RegForm.Img_1.value;
//if(s==""){alert("No image,please select again!");document.RegForm.Img_1.focus(); return false;}
var img = new Image();
img.src = s;
if(img.fileSize>FileMaxSize*1024){alert("The file size exceeds "+FileMaxSize+"K,please choose a smaller one!");document.RegForm.Img_1.focus();return false;}
//--></SCRIPT>
<FORM action="**.asp" method="post" onSubmit="return CheckFileSize()" enctype="multipart/form-data" name="RegForm">
<input name="Next" type="submit" class="pBttn" id="Next" value="Save">
相關(guān)文章
JavaScript必知必會(huì)(六) delete in instanceof
這篇文章主要介紹了JavaScript必知必會(huì)(六) delete in instanceof的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
Bootstrap 模態(tài)對(duì)話(huà)框只加載一次 remote 數(shù)據(jù)的完美解決辦法
前端框架 Bootstrap 的模態(tài)對(duì)話(huà)框,可以使用 remote 選項(xiàng)指定一個(gè) URL,這樣對(duì)話(huà)框在第一次彈出的時(shí)候就會(huì)自動(dòng)從這個(gè)地址加載數(shù)據(jù)到 .modal-body 中,但是它只會(huì)加載一次,不過(guò)通過(guò)在事件中調(diào)用 removeData() 方法可以解決這個(gè)問(wèn)題,具體操作方法,大家通過(guò)本文了解下吧2017-07-07
JavaScript實(shí)現(xiàn)密碼框輸入驗(yàn)證
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)密碼框輸入驗(yàn)證,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
解決iframe的frameborder在chrome/ff/ie下的差異
最近的項(xiàng)目中使用了動(dòng)態(tài)創(chuàng)建iframe的js方法,發(fā)現(xiàn)iframe.frameborder="0"在IE7下不管用,而chrome/ff都正常的,很是郁悶。2010-08-08
跟我學(xué)習(xí)javascript的執(zhí)行上下文
跟我學(xué)習(xí)javascript的執(zhí)行上下文,讀完本文后,你應(yīng)該清楚了解釋器做了什么,為什么函數(shù)和變量能在聲明前使用以及它們的值是如何決定的,需要了解這些內(nèi)容的朋友可以參考下2015-11-11
老生常談JavaScript 正則表達(dá)式語(yǔ)法
下面小編就為大家?guī)?lái)一篇老生常談JavaScript 正則表達(dá)式語(yǔ)法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08
Nuxt.js 數(shù)據(jù)雙向綁定的實(shí)現(xiàn)
這篇文章主要介紹了Nuxt.js 數(shù)據(jù)雙向綁定的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02

