我们遇到了一个问题。当用户上传一个大于10MB的文件时,页面会超时并清除数据,没有任何错误提示来描述发生了什么。理想情况下,我们希望能够在用户选择要上传的文件时检查文件大小,但我不知道这是否可能。我们的框架是使用ASP.NET、VB.NET和Javascript(以及ExtJS 3.0)构建的,并在IE中运行。
有没有办法解决这个问题?
有没有办法解决这个问题?
<script type="text/javascript">
var clicked = false;
function checkSize() {
var node = document.getElementById('file');
var check = node.files[0].fileSize;
if (check > 4096)
{
alert('Your file is too big!');
return false;
}
}
</script>
<form enctype="multipart/form-data" action="upload_file.php" method="post" class="body">
Select a file: <input type='file' id='file' name='file'>
<input type='submit' value=' Upload File ' onClick='return checkSize()'>
</form>
<httpRuntime executionTimeout="90" maxRequestLength="4096" /> <-- number of bytes
这应该插入在<system.web>
下面
至于检查文件大小,就像这样简单
If txtFileUpload.PostedFile.ContentLength > 1024 Then <-- bytes
function checkSize(fileInput, limit){
if(!window.ActiveXObject){
return false;
}
var oas = new ActiveXObject("Scripting.FileSystemObject"),
d = fileInput.value,
e = oas.getFile(d),
f = e.size;
return f <= limit; // in bytes
}
使用普通的JavaScript和HTML文件标签是不可能的,因为由于安全原因,页面无法访问用户的磁盘,这是检查文件大小所必需的。
我看到过使用Flash来完成这个功能,但我不是Flash专家。