2015-10-25 2 views
0

Я пытаюсь проверить расширение файла, но по какой-то причине Valid всегда является ложным.Проверка расширения файла в asp.net

<asp:FileUpload ID="LogoUpload" CssClass="form-control" runat="server" /><asp:Button ID="BtnLogoUpload" runat="server" CssClass="btn btn-primary" Text="Upload" /> 
       <asp:Label ID="lblLUploadMessage" runat="server" ForeColor="Red" ></asp:Label> 

Protected Sub BtnLogoUpload_Click(sender As Object, e As EventArgs) Handles BtnLogoUpload.Click 
     If (LogoUpload.HasFile) Then 
      Dim fileExtension As String = Path.GetExtension(LogoUpload.FileName) 
      Dim extension = New String() {"jpg", "png", "gif"} 
      Dim Valid As Boolean = False 
      For Each ext As String In extension 
       If ext.Equals(fileExtension) Then 
        Valid = True 
       End If 
      Next 
      If Valid = True Then 
       LogoUpload.SaveAs(Server.MapPath(String.Format("{0}/{1}/{2}", "~/CW/uploads", register_username.Text, "logo") + LogoUpload.FileName)) ' Save file in directory 
       lblLUploadMessage.Text = "File Uploaded Successfully" 
       lblLUploadMessage.ForeColor = System.Drawing.Color.Green 
      Else 
       lblLUploadMessage.Text = "File extension is not valid" 

      End If 
     End If 
    End Sub 

Я всегда получаю File extension is not valid

+0

Вы пробовали 'IO 'пространство имен? Или 'my.computer.filesystem'? –

ответ

1

Метод Path.GetExtension имеет задвижку. Как описано в MSDN documentation, возвращаемое значение этого метода является:

Расширения указанного пути («», включая период), или нуля или String.Empty.

Важной частью здесь является (включая период ""). Это означает, что если вы загружаете файл bmp, метод Path.GetExtension возвращает не bmp, а .bmp.

Так что для того, чтобы заставить его работать, вы должны использовать расширение с периодами:

Dim extension = New String() {".jpg", ".png", ".gif"} 

или дифферентом периода с начала расширения, прежде чем принимать ваши чеки:

Dim fileExtension As String = Path.GetExtension(LogoUpload.FileName) 
fileExtension = fileExtension.TrimStart("."c) 
+0

Ahh Спасибо за помощь – user2650277