检测上传文件大小的几种方式
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> |
4.jquery uploadify
这是一个开源的多文件上传组件,测试了一下,可以实现多文件上传,而且效果还不错。官方地址http://www.uploadify.com/download/
补充:asp.net教程,.Net开发