限制文件上载,以便只能上载小于1 MB的文件

时间:2012-08-08 08:20:19

标签: c# asp.net asp.net-4.0

我在学习Microsoft Web应用程序开发人员考试时遇到了这个问题,

  

您正在实施一个允许用户将文件上传到Web服务器的网页。该页面包括一个   具有“提交”按钮的表单。   您希望限制上传,以便只能上载小于1 MB的文件。

答案是:

  

添加ASP.NET FileUpload控件并将其配置为在服务器上运行。   将一个服务器端的OnClick处理程序添加到表单的“提交”按钮,以便仅在文件大小为时保存文件   允许

但这不意味着该文件已经上传到服务器了吗?我们只是选择是否保存?可以在客户端完成吗?

2 个答案:

答案 0 :(得分:2)

进行文件上传时,您可以检查许多内容。在服务器端,还有最大请求大小,实际上会停止上传。但是你是对的,上传任何一个检查时都已经完成了上传。

现在,您可以在支持的浏览器上使用HTML5文件API,使文件上传更加清晰,包括在客户端检索它们的大小,甚至显示预览。请参阅此处以获取示例:Client Checking file size using HTML5?

答案 1 :(得分:1)

使用IE:

<html>
<head>
<script>
function getSize()
{
    var myFSO = new ActiveXObject("Scripting.FileSystemObject");
    var filepath = document.upload.file.value;
    var thefile = myFSO.getFile(filepath);
    var size = thefile.size;
    alert(size + " bytes");
}
</script>
</head>
<body>
<form name="upload">
<input type="file" name="file">
<input type="button" value="Size?" onClick="getSize();">
</form>
</body>
</html>

使用Chrome或Firefox: 通过实现jQuery和HTML5 File API规范,您可以使用此简单代码段来访问文件属性,例如size:

//binds to onchange event of your input field
$('#myFile').bind('change', function() {
    alert(this.files[0].size);
});

来源:关于此主题的优秀文章:http://www.kavoir.com/2009/01/check-for-file-size-with-javascript-before-uploading.html