-3

問題を解決しようとしています。最大長が 10 MB の fileupload コントロールを使用してファイルをアップロードしたい (たとえば)。ファイルのサイズをすべて制御しましたが、10 MB を超えるファイルをアップロードしようとすると、ブラウザに「ページ違反」ページが表示されます。

サーバー側でエラーを傍受する方法はありますか?

皆さん、ありがとうございました

protected void Page_Load(object sender, EventArgs e)
{
    if (IsPostBack)
        StatusLabel.Text = Server.MapPath("~/prova")
                         + FileUpload1.PostedFile.FileName;

    if (!IsPostBack)
    {
        var config = WebConfigurationManager.OpenWebConfiguration("~");
        var section = config.GetSection("system.web/httpRuntime")
                                     as HttpRuntimeSection;
        section.MaxRequestLength = 10485760*200;
    }

    HyperLink hl = new HyperLink();
}

protected void Button1_Click(object sender, EventArgs e)
{
    if (FileUpload1.HasFile)
    {
        if (Page.IsValid)
        {
            try
            {
                string filename = Path.GetFileName(FileUpload1.FileName);
                FileUpload1.SaveAs(Server.MapPath("~/prova") + filename);
            }
            catch (Exception ex)
            {
                StatusLabel.Text = "Upload status: The file could not be"
                                 + " uploaded. The following error occured: "
                                 + ex.Message;
            }
        }
    }
}

protected void CustomValidator1_ServerValidate(object source,
                                               ServerValidateEventArgs args)
{
    if (FileUpload1.FileContent.Length < 10485760)
    {
        args.IsValid = true;
    }
    else
    {
        args.IsValid = false;
    }
}
4

1 に答える 1

1

maxRequestLengthを変更する必要があります。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
    <httpRuntime maxRequestLength="102400" executionTimeout="1200" />
</system.web>
</configuration>

関係なく例外をインターセプトする場合は、Global.asaxで処理する必要があります。コード例へのリンクは次の とおりです

于 2013-01-29T10:49:28.600 に答える