我在学习Microsoft Web应用程序开发人员考试时遇到了这个问题,
您正在实施一个允许用户将文件上传到Web服务器的网页。该页面包括一个 具有“提交”按钮的表单。 您希望限制上传,以便只能上载小于1 MB的文件。
答案是:
添加ASP.NET FileUpload控件并将其配置为在服务器上运行。 将一个服务器端的OnClick处理程序添加到表单的“提交”按钮,以便仅在文件大小为时保存文件 允许
但这不意味着该文件已经上传到服务器了吗?我们只是选择是否保存?可以在客户端完成吗?
答案 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