当前位置:编程学习 > C#/ASP.NET >>

检测上传文件大小的几种方式

1. FileUpload1.PostedFile.ContentLength
这个是我经常用的一种方式,不过上传大文件就会发现他是上传之后才检测文件大小的。用户体验不是太好
前台:

 代码如下 复制代码
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="btnUpload" runat="server" Text="上传" />
后台:
if (FileUpload1.PostedFile.ContentLength > 10485760)
{
MessageBox.Show("上传文件请不要超过10M");
return;
}
string filepath = FileUpload1.FileName;//本地路径
。。。
FileUpload1.SaveAs(sSavePath);

2. HttpPostedFile
这个测试发现其实也是上传之后才进行判断的,跟上一个的性能差不多。
前台:

 代码如下 复制代码
<input type="file" runat="server" id="FileUpload1" />
<asp:Button ID="btnUpload" runat="server" Text="上传" onClick="btnUpload_Click" />

后台:

 代码如下 复制代码
HttpPostedFile f = Request.Files[0];
if (f.ContentLength > 10485760)
{
MessageBox.Show("上传文件请不要超过10M");
return;
}
string filepath1 = FileUpload1.Value;//本地路径D:/..
f.SaveAs(sSavePath);

3.fso
客户端检测文件大小 ,这个倒是在客户端检测的,但是会弹出安全提示。

 代码如下 复制代码
<html>
<head>
<script>
function getFileSize(fileName) {
if (document.all) {
window.oldOnError = window.onerror;
window.onerror = function (err) {
if (err.indexOf('utomation') != -1) {
alert('没有访问文件的权限');
return true;
}
else
return false;
};
var fso = new ActiveXObject('Scripting.FileSystemObject');
var file = fso.GetFile(fileName);
window.onerror = window.oldOnError;
return parseInt(file.Size / 1024) + 'K';
}
}
</script>
</head>
<body>
<form name="formName">
<input type="file" name="fileName" onchange="alert(getFileSize(this.form.fileName.value))"><br>
</form>
</body>
</html>

image

4.jquery uploadify
这是一个开源的多文件上传组件,测试了一下,可以实现多文件上传,而且效果还不错。官方地址http://www.uploadify.com/download/

image

补充:asp.net教程,.Net开发
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,