MVC3 Wie überprüft man, ob HttpPostedFileBase ein Bild ist
Habe ich einen controller wie diesen:
public ActionResult Upload (int id, HttpPostedFileBase uploadFile)
{
....
}
Wie kann ich sicherstellen, dass uploadFile ist ein Bild (jpg, png, etc.)
Ich habe versucht mit
using (var bitmapImage = new Bitmap (uploadFile.InputStream)) {..}
was löst eine ArgumentException aus, wenn bitmapImage kann nicht erstellt werden.
Gibt es einen besseren Weg, zum Beispiel durch das betrachten von uploadFile.Mit dem Namen?
InformationsquelleAutor der Frage Henrik Stenbæk | 2012-08-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die
HttpPostedFileBase
- Objekt Eigenschaften, die für dieseAuch hier ist eine kleine Methode, die ich vorbereitet habe, die Sie verwenden können, erweitern...
Habe ich auch einen Artikel geschrieben auf dieser hier
InformationsquelleAutor der Antwort Yasser
Sie könnten überprüfen Sie die Dateinamen und die Dateierweiterung und der MIME-Typ, aber das könnte nicht zuverlässig, weil der Nutzer kann Sie einfach benennen Sie die Datei vor dem hochladen. Hier ist ein zuverlässiger Weg, um zu erreichen, dass durch den Inhalt der Datei: https://stackoverflow.com/a/6388927/29407
Könnte man natürlich erweitern auf andere bekannte Formate Typ Bild als PNG, wie diese:
InformationsquelleAutor der Antwort Darin Dimitrov
Oder Sie können es auf der client-Seite thru html-Attribut "accept", um filter, die Datei so schnell wie möglich:
dieser zeigt nur die Dateitypen definiert, in Ihrem accept-Attribut als default. Hüten Sie sich vor, user können sich noch ändern filetye "Alle Dateien", mit diesem im Verstand, besser prüfen:
Gelöst Sorge
ein javascript-snippet zu überprüfen, die Erweiterung, und klicken Sie dann tun, einige Bearbeitung zu deaktivieren-button wie:
bis Dateierweiterung korrekt ist. dennoch haben es überprüft auf der server-Seite. 🙂
InformationsquelleAutor der Antwort Kristian Jay