Я справился с этой проблемой, сделав страницу недействительной (чтобы она не отправлялась назад), если выбранный файл превышает максимальную длину запроса. Это требует наличия настраиваемого элемента проверки для клиентской стороны, проверяющего контроль загрузки файла.
Вот подпункт проверки сервера, для ограничения размера файла до 4Mb:
Sub custvalFileSize_ServerValidate(ByVal s As Object, ByVal e As ServerValidateEventArgs)
'FileUpload1 size has to be under 4Mb
If (FileUpload1.PostedFile.ContentLength > 4194304) Then
e.IsValid = False
Else
e.IsValid = True
End If
End Sub
Вот функция проверки на стороне клиента:
function custvalFileSize_ClientValidate(src,args){
if (document.all("FileUpload1").files[0].size > 4194304){
args.IsValid = false;
} else {
args.IsValid = true;
}
}
Контроль загрузки и контроль проверки:
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:CustomValidator ID="CustomValidator1" runat="server" BackColor="#FFFFFF" BorderColor="#FF0000" BorderStyle="solid" BorderWidth="0" ClientValidationFunction="custvalFileSize_ClientValidate" ControlToValidate="FileUpload1" Display="Dynamic" EnableClientScript="true" ErrorMessage="<b>Please upload document files of 4Mb or less.</b>"
Font-Bold="false" Font-Names="Verdana, Arial, Helvetica" Font-Size="9px" ForeColor="#FF0000" OnServerValidate="custvalFileSize_ServerValidate" Text="<br/><span style='font-weight:bold;font-size:12px;'>This file is too large.<br />We can only accept documents of 4Mb or less.</span>"></asp:CustomValidator>