限制文件上传,只允许上传小于1 MB的文件。

3
我在准备微软Web应用程序开发考试时遇到了这个问题:
你正在实现一个网页,允许用户上传文件到Web服务器。该页面包含一个表单,其中有一个提交按钮。
你想限制上传,只允许上传小于1MB的文件。
给出的答案是:
添加一个ASP.NET FileUpload控件并将其配置为在服务器上运行。 为表单的提交按钮添加一个服务器端OnClick处理程序,仅在文件大小被允许时保存文件。
但这不意味着文件已经上传到服务器了吗?我们只是选择是否保存它而已吗?能在客户端完成吗?

1
你是不是想要在这里建议的方式中使用jQuery检查文件输入大小 https://dev59.com/0nI-5IYBdhLWcg3w8dUQ - V4Vendetta
2个回答

2
在进行文件上传时,您可以检查许多内容。在服务器端,还有最大请求大小,它实际上会停止上传。但是您是正确的,这些检查都是在上传之后才被捕获到的。
现在,在支持的浏览器上,您可以使用HTML5文件API来更加智能地处理文件上传,包括在客户端检索它们的大小,甚至显示预览。请参见此处的示例:Client Checking file size using HTML5?

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文件API规范,您可以使用此简单的代码片段访问文件属性,例如大小:
//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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接