asp.net fileupload 判断文件是否过大

来源:百度知道 编辑:UC知道 时间:2024/09/23 05:15:20
fileupload现在已经可以成功上传文件 我在web.config文件中设置了<httpRuntime maxRequestLength ="1500" executionTimeout ="120"/>来限制上传文件的大小 现在我只要一上传大于1500kb的文件就会弹出该页无法显示的页面 我想现在不出现无法显示的页面 而自己定义一个出错信号 我的判断语句是:
if(FileUpload1.PostedFile.ContentLength>1500000)
{
response.write("上传文件过大!");
}
但是我上传一个大于1500kb的文件的时候还是弹出的是无法显示的页面 上述代码好像没有执行啊 请问这是怎么回事啊?请高手指教!先谢了!
最楼下的 用js代码实现的 那具体写在哪里啊?代码具体位置??
怎么<input type="file" name="file" size="30" onchange="getFileSize(this.value)" />
根本就没有onchange的方法啊?真是没有啊 我硬着打出来结果出现了红色的波浪号 而且提示 onchange不是input的有效属性 真的啊 如果不信的话你亲自去看看吧 我现在很着急啊 麻烦了

这种方法不对,楼上的方法也肯定不行的,

首先你要弄清除:
服务器在执行【if(FileUpload1.PostedFile.ContentLength>1500000)】这条语句的时候,其实文件都已经传到服务器上了,明白了么?

当你点击那个【上传】按钮的时候,页面开始提交请求,并且把页面上的所有forms和PostedFile都传到服务器上,然后由服务器【http处理程序】负责创建page页面以及所有page页面的子控件树,同时,也封装了Request等等这些全局对象,接下来才开始执行页面里的代码:
if(FileUpload1.PostedFile.ContentLength>1500000)

也就是说,当执行到以上代码的时候,文件早都已经传到服务器上了(或者超过大小报错),你可以试试:把值改成15,再传个20M的文件都会报错的,

这个只能通过js脚本在前台提交请求之前判断文件大小,

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>test</title>

<script type="text/javascript">
function getFileSize(filePath)
{
var image=new Image();
image.dynsrc=filePath;
alert(image.fileSize);
if(image.fileSize > 15000000)
{
alert("文件太大!");
}
}
</script>