一个上传excel文件的功能,但是要限制大小,因为WebConfig默认上传文件不能超过4m,否则就无法显示该网页,所以希望用js获取上传文件的大小,来提示上限。可是我用的下面的方法,总是报错。
<asp:FileUpload ID="fu" runat="server" onchange="chksize(this.value)" />
<script type="text/javascript">
function chksize(strFileName) {
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("可以上传");
}
</script>
每次运行到new ActiveXObject那一行时,就会报错:Automation服务器不能创建对象,请问大家有啥解决的办法没?
<asp:FileUpload ID="fu" runat="server" onchange="chksize(this.value)" />
<script type="text/javascript">
function chksize(strFileName) {
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("可以上传");
}
</script>
每次运行到new ActiveXObject那一行时,就会报错:Automation服务器不能创建对象,请问大家有啥解决的办法没?
function ChkFileSize(obj) {
if (obj) {
//ie
if (window.navigator.userAgent.indexOf("MSIE") >= 1)
{
//var img=document.createElement("img");
//img.src=obj.value;
//img.fileSize;
//alert(img.fileSize);
//FileObj=obj;
var ImgObj=new Image(); //建立一个图像对象
ImgObj.src=obj.value;
ImgObj.onreadystatechange=function(){
if(ImgObj.readyState=="complete")
{
ImgFileSize=Math.round(ImgObj.fileSize/1024*100)/100;//取得图片文件的大小
alert(ImgFileSize);
}
}
document.body.removeChild(ImgObj);
}
//firefox
else if (window.navigator.userAgent.indexOf("Firefox") >= 1) {
if (obj.files) {
alert(obj.files.item(0).fileSize);
}
else {
}
}
}
}
</script>
<input id="File1" type="file" onchange="javascript:ChkFileSize(this)" />
function crobj()
{
var obj=document.getElementById("path");
var fso=new ActiveXObject("Scripting.FileSystemObject");
var opath=fso.GetFile(obj.value);
var s="文件大小为"+opath.size+"bytes";
alert(s);
}
</script>
<input type="file" id="path" />
<input type="button" value="提交" onclick="crobj()"/>
使用web.config限制不行吗???如上,maxRequestLength="4096000"就是限制最大上传的大小,单位是字节,需要多大的自己去算一下就行了
在业务需要无需限制上传excel文件大小的情况下,3楼正解。