C# 如何显示Javascript警报而不是黄页错误
我试图限制用户在特定页面上可以上传的文件的大小。我使用C# 如何显示Javascript警报而不是黄页错误,c#,asp.net,vb.net,global-asax,javascript,C#,Asp.net,Vb.net,Global Asax,Javascript,我试图限制用户在特定页面上可以上传的文件的大小。我使用web.config这样做: <location path="SubSection/TestPage"> <system.web> <httpRuntime maxRequestLength="2048" /> </system.web> </location> 最后,我还在用户控件本身(位于VB.NET中)中尝试了以下代码,这些代码是基于 不幸的是
web.config
这样做:
<location path="SubSection/TestPage">
<system.web>
<httpRuntime maxRequestLength="2048" />
</system.web>
</location>
最后,我还在用户控件本身(位于VB.NET
中)中尝试了以下代码,这些代码是基于
不幸的是,这段代码似乎根本没有被调用
重申一下,这只是为了处理,比如说,一个简单的用户上传文件时的错误,这个文件有点太大。我不想重定向并丢失用户在原始页面上可能执行的其他操作,我只想显示一个简单的JavaScript警报框。可以这样做吗?您可以用java脚本获得文件大小,如下所示
var fileSize = document.getElementById("myfileUploader").files[0].size; //gives size in bytes.
if(fileSize > 2097152) //2038Kb = 2038*1024 bytes
{
alert("File size exceded");
return false;
}
您可以使用AJAX发送请求,并处理错误响应,作为文件太大的指示。例如,使用jQuery:
$.ajax("/my/upload/action",
{
type: "POST",
data-type: "xml",
data: serializeFilesAsXML();
success: function() {
alert("Your files were uploaded!");
}
error: function(jqXHR, textStatus, errorThrown) {
if(errorThrown == "Files Too Large") {
alert("Your files were too large.");
} else {
alert("There was an error uploading your files. Please try again.");
}
}
}
);
您可能需要重写上载文件的操作,以便它响应AJAX请求并发送相应的失败消息。这在IE上不起作用。此外,您正在检查2048字节(如注释中所述),但OP显示的配置基于Kb,所以它应该是
fileSize>2097152
而不是正面的一面,我不知道在非IE浏览器中有这个功能,所以谢谢:-)这个JavaScript解决方案要求用户选择的文件首先完成上传,对吗?如果是这样的话,那就意味着它将在到达JavaScript之前达到maxRequestLength
限制,不是吗?您只需要检查文件大小。。如果超过该大小,则必须显示非常简单的警报消息。。
var fileSize = document.getElementById("myfileUploader").files[0].size; //gives size in bytes.
if(fileSize > 2097152) //2038Kb = 2038*1024 bytes
{
alert("File size exceded");
return false;
}
$.ajax("/my/upload/action",
{
type: "POST",
data-type: "xml",
data: serializeFilesAsXML();
success: function() {
alert("Your files were uploaded!");
}
error: function(jqXHR, textStatus, errorThrown) {
if(errorThrown == "Files Too Large") {
alert("Your files were too large.");
} else {
alert("There was an error uploading your files. Please try again.");
}
}
}
);