Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何显示Javascript警报而不是黄页错误_C#_Asp.net_Vb.net_Global Asax_Javascript - Fatal编程技术网

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.");
            }
        }
    }
);