1

私はすでにファイルサイズとファイル拡張子をチェックしています。ただし、アップロードプロセスがタイムアウトしたかどうかを確認する必要があります。もしそうなら、アップロードがタイムアウトしたというメッセージをユーザーに表示したいので、後で再試行できます。どんな助けでも大歓迎です!:)

    Dim success As Boolean = False
    Response.Write("*EIL*")
    Try
        If Not Context.Request.Files Is Nothing Then
            Dim fileCount As Int32 = Context.Request.Files.Count
            For fileLoop As Integer = 0 To fileCount - 1
                Dim file As HttpPostedFile = Context.Request.Files(fileLoop)
                Dim fileName As String
                If file.ContentLength > 20971520 Then
                    Response.Write("The upload failed because the file size is too large - 20MB is the limit.")
                Else
                    fileName = HttpUtility.UrlDecode(file.FileName)
                    Dim ext As String = fileName.Substring(fileName.Length - 4, 4).ToLower
                    If ext = ".jpg" Or ext = ".gif" Or ext = ".png" Or ext = ".bmp" Or ext = ".psd" Or ext = ".tif" Then
                        If InStr(fileName, "\") > 0 Then
                            Dim arr() As String = Split(fileName, "\")
                            fileName = arr(arr.Length - 1)
                        End If

                        file.SaveAs(String.Format(ConfigurationManager.AppSettings("ArtworkUploadPath"), fileName))

                        success = True
                    Else
                        Response.Write("The upload failed because the file was the wrong type.  Only files with the following extensions are allowed: .jpg, .gif, .png, .bmp, .psd, .tif")
                    End If
                End If
            Next
            If success Then Response.Write("Success")
        End If
    Catch ex As Exception

    End Try
4

1 に答える 1

0

簡単な答え:できません。

より長い答え:アップロードがタイムアウトした場合、サーバーがコードに時間がかかりすぎると判断し、プロセスを強制終了してから、例外をスローするためです。したがって、タイムアウトが発生するとコードは実行されなくなるため、ユーザーにメッセージを表示する方法はありません。

同様の質問で説明されているように、必要に応じてタイムアウトをログに記録できます。

理想的には、とにかくタイムアウトをキャッチしたくない、タイムアウトしないようにページを修正したい。これはいくつかの方法で行うことができます。

  • の値を変更してmaxRequestLengthsystem.web許可されるファイルサイズを制限し、アップロードがそれを超えたときにユーザーにエラーページを表示します。

  • ここにある答えのように、の値を増やしてタイムアウト期間を延長しexecutionTimeoutます。system.web

于 2013-01-09T22:41:52.827 に答える