js判斷上傳文件大小 (一)
Js代碼
<html>
<head>
<script type="text/javascript">
var isIE = /msie/i.test(navigator.userAgent) && !window.opera;
function fileChange(target) {
var fileSize = 0;
if (isIE && !target.files) {
var filePath = target.value;
var fileSystem = new ActiveXObject("Scripting.FileSystemObject");
var file = fileSystem.GetFile (filePath);
fileSize = file.Size;
} else {
fileSize = target.files[0].size;
}
var size = fileSize / 1024;
if(size>10000){
alert("附件不能大于10M");
}
}
</script>
</head>
<body>
<input type="file" name="contractFileName" style="width: 500px;" onchange="fileChange(this);"/>
</body>
</html>
自己網上找資料 并測試 文件上傳大小限制的一個例子,兼容ie6,ie7,ie8 ,Google Chrome,ff等瀏覽器,ie8上面在安全設置處設置一下就好了(工具 => Internet選項 => 安全 => Internet => 自定義級別 找到“將文件上載到服務器時包含本地目錄路徑”,設為“啟用”即可)。
Js代碼
function fileChange(target,id) {
var fileSize = 0;
if (isIE && !target.files) {
var filePath = target.value;
var fileSystem = new ActiveXObject("Scripting.FileSystemObject");
if(!fileSystem.FileExists(filePath)){
alert("附件不存在,請重新輸入!");
var file=document.getElementById(id);
file.outerHTML=file.outerHTML;
return;
}
var file = fileSystem.GetFile (filePath);
fileSize = file.Size;
} else {
fileSize = target.files[0].size;
}
var size = fileSize / 1024;
if(size>100000){
alert("附件大小不能大于100M!");
var file=document.getElementById(id);
file.outerHTML=file.outerHTML
}
if(size<=0){
alert("附件大小不能為0M!");
var file=document.getElementById(id);
file.outerHTML=file.outerHTML
}
}
js判斷上傳文件大小 (二)
<script type="text/javascript">
function chksize(strFileName){
try
{
var maxsize = 100; //定義允許文件的大小,單位KB,請根據需要自行修改!
var objStream = new ActiveXObject("ADODB.Stream");
objStream.Type = 1;
objStream.Open();
objStream.LoadFromFile(strFileName);
if(Math.round(objStream.Size/1024)>maxsize)
{alert ("抱歉!您選擇的文件為 "+Math.round(objStream.Size/1024,2)+" KB n超過了程序"+maxsize+" KB 的限制!");
document.form1.reset();
return false;
}
else
alert("可以上傳");
}catch(e)
{
alert("不支持");
}
}
js判斷上傳文件大小 (三)
<script language="javascript" type="text/javascript">
function getFileSize(filename)
{
// var filename = document.all('fileup').value; //獲得上傳文件的物理路徑
if(filename =='')
{
alert("你還沒有瀏覽要上傳的文件");
return false;
}
try {
var fso,f,fname,fsize;
var flength=40000; //設置上傳的文件最大值(單位:kb),超過此值則不上傳。
fso=new ActiveXObject("Scripting.FileSystemObject");
f=fso.GetFile(filename);//文件的物理路徑
fname=fso.GetFileName(filename);//文件名(包括擴展名)
fsize=f.Size; //文件大?。╞it)
fsize=fsize/1024;
//去掉注釋,可以測試
//alert("文件路徑:"+f);
//alert("文件名:"+fname);
//alert("文件大小:"+fsize+"kb");
if(fsize>flength)
{
alert("上傳的文件到小為:"+fsize+"kb,\n超過最大限度"+flength+"kb,不允許上傳 ");
return false;
}
else
{alert("允許上傳,文件大小為:"+fsize+"kb");}
}
catch(e)
{
alert(e+"\n 跳出此消息框,是由于你的activex控件沒有設置好,\n"+
"你可以在瀏覽器菜單欄上依次選擇\n"+
"工具->internet選項->\"安全\"選項卡->自定義級別,\n"+
"打開\"安全設置\"對話框,把\"對沒有標記為安全的\n"+
"ActiveX控件進行初始化和腳本運行\",改為\"啟動\"即可");
return false;
}
return true;
}
</script>
</head>
<body>
<form id="Form1" method="post" encType="multipart/form-data" runat="server">
<INPUT id="fileup" type="file" size="80" name="fileup" onpropertychange="getFileSize(this.value)">
<input type=button onclick="getFileSize(document.all('fileup').value)" value="測試">
</form>
</body>
js判斷上傳文件大小 (四)
<title>測試文件</title>
<Script language="JavaScript" type="text/javascript">
function checkFileSize(filesizeKb){
try{
if(document.all){//頁面內所有元素的一個集合,可判斷是否是IE
var filename = document.getElementById("filename").value;
var fso = new ActiveXObject("Scripting.FileSystemObject");
if(!fso.FileExists(filename)){
alert("上傳文件不存在,請重新輸入!");
document.execCommand("undo");//對網頁的所有表單進行撤銷的
return false;
}
var file = fso.getfile(filename);
var fileSize = file.size; //單位:b
var fileSizeKb = fileSize/1024;//轉換為kb
if(parseFloat(fileSizeKb)>parseFloat(filesizeKb)){
alert("當前文件大小為"+parseFloat(fileSizeKb)+"kb,最大上傳文件大小為"+filesizeKb+"kb!");
document.execCommand("undo");//對網頁的所有表單進行撤銷的
return false;
}else{
//alert("當前文件大小為"+parseFloat(fileSizeKb)+"kb!");
}
formname.submit();
}
} catch(e){
if(e.description=="Automation服務器不能創建對象"){
alert("文件大小驗證未生效!\r\n啟用此驗證,請如下修改瀏覽器設置:工具->Internet選項->安全->本地Intranet->自定義級別->ActiveX控件和插件->對沒有標記為安全的ActiveX控件進行初始化和腳本運行->啟用!");
formname.submit();
}else{
//alert(e.description);
//可能出現“拒絕訪問”異常,刷新后又無此異常
window.location.reload();
}
}
}
</script>
</head>
<body>
<form name="formname" action="test2.jsp"><input type="file" name="filename" id="filename"><br>
<input type="button" value="上傳文件" onclick="checkFileSize(45)" ><br>
</form></body>
</html>