Problem bei der überprüfung Dateitypen in einem ASP.NET FileUpload-Steuerelement mit RegularExpressionValidator
code:
<span>Upload Adobe Acrobat file<img src="../../Images/UI/pdf.jpg" style="height: 25;
width: 20" height="25" width="20" /></span>
<asp:FileUpload ID="uplPdf" runat="server" />
<asp:RegularExpressionValidator ID="valPdf" runat="server" ErrorMessage="Only PDF files are allowed!"
ValidationExpression="^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))(.pdf)$" Display="Dynamic"
ControlToValidate="uplPdf" ValidationGroup="upload" />
<br />
<asp:Button ID="btnUpload" runat="server" Text="Upload files" OnClick="btnUpload_Click"
ValidationGroup="upload" />
code hinter:
if (valPdf.IsValid && uplPdf.HasFile)
IsValid false zurückgibt, nachdem eine gültige pdf-Datei name war eingetragen.
Beachten Sie, dass wenn keine Datei angegeben ist, wird true zurückgegeben.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, diese in Ihrem RegularExpressionValidator
Dann in Ihrer codebehind aufrufen Seite.Validate("upload"), bevor Sie fortfahren:
HINWEIS: Die ValidationExpression oben entsprechen alle Dateien mit der Endung *.pdf-case-insentive Weg. Daher
"c:\somepath\somefile.pdF"
,"somefile.pDF"
und"somefile.Pdf"
alle Gültigkeitsprüfung.Naja... ich glaube nicht, dass diese regexp wird nie funktionieren in diesem Fall. Try this one:
ValidationExpression="^.+.pdf$"
sollte es funktionieren für Dateien mit der Endung .pdf-Datei, die ist, was Sie wollen.
Na ja, normalerweise würden Sie haben zu entkommen den Punkt.
Auch in der Frage verwendet, eine POSIX-Regex-Funktion, während in der Regel verwenden wir Perl Gestylt Ausdrücke .NET
Haben Sie versucht, so etwas wie:
- Und natürlich sicherstellen, dass es ignoriert die groß - /Kleinschreibung.
Habe ich noch die Datei-Liste in ein string-Kollektion in den Projekt-Einstellungen.
Dann setze ich die regex programmatisch: