Ich versuche Besuchern den Upload von Bildern über meine MVC-Website zu ermöglichen. Der Benutzer soll die Bilder hochladen und dann in einer anderen Aktion im Controller alle Bilder abrufen und anzeigen.MVC-Feldtyp für hochgeladene Datei
Mein Modell hat dieses Feld:
public virtual byte[] FileData{ get; set; }
Und meine Datenbanktabelle hat diese Spalte:
FileData varbinary
Aus meiner Sicht habe ich folgendes:
<div class="form-group">
@Html.LabelFor(model => model.FileData, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.TextBoxFor(model => model.FileData, new { type = "file" })
@Html.ValidationMessageFor(model => model.FileData)
</div>
</div>
Als ich einreichen das Formular bekomme ich diesen Fehler:
System.FormatException: The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.
Meine Fragen sind:
die Datenbanktabelle Datentyp für die FileData
Spalte korrekt ist?
Ist der Modelltyp für das Feld FileData
korrekt?
Was ist die Ursache der Ausnahme?
Es gibt ein [beantworten hier] (http://stackoverflow.com/questions/15106190/uploading-files-into-database-with-asp-net- mvc). Wie für Ihre Ausnahme: Was ist die Ursache der Ausnahme? Wie sieht die vollständige Stapelverfolgung aus? – Jasen
Verwenden Sie ein Ansichtsmodell mit einer Eigenschaft 'HttpPosedFileBase File', um an -' @ Html.TextBoxFor (m => m.File, new {type = "file})' zu binden und den Eingabestrom in das 'byte 'des Datenmodells einzulesen. ] FileData' Eigenschaft. –