Ich habe ein Szenario, in dem ich den Dateistrom von Client-Seite hochladen möchte (ich verwende AngularJS), um die Web-API in asp.net über JSON-Objekt. Also gibt es einige Felder im JSON-Objekt, in denen ein Feld Dateistrom ist. Wie erstelle ich ein JSON-Objekt und sende es an die Web-API, die Modellbindung auf der API-Seite zu meinem Modell bekommen.Wie lade ich einen Dateistream in die Web-API 2 in ASP.NET über ein JSON-Objekt hoch?
$scope.fileUploadData = {
TextId: 304765,
DocumentId: 0,
PatientId: 166158,
file://This is my file stream property in JSON
}
public ApiActionResult CreateDocument(DocumentVM model)
{
//Some logic here.....
}
// DocumentVM class will be as follows
public class DocumentVM
{
long TextId;
long DocumentId;
long PatientId;
Stream file;
}
Bitte geben Sie mir die Beispielcode Schnipsel, wie Sie es erreichen.
Was ich versucht habe: Ich googelte viele, aber ich fand die Lösungen wie die Verwendung von mehrteiligen Formulardaten. In dem JSON und Datei-Stream angehängt und dann an die Web-API gesendet. Ich habe folgende Logik verwendet, um die mehrteiligen Formulardaten zu extrahieren.
public async Task<ApiActionResult> CreateDocument()
{
MultipartFormDataStreamProvider provider =
new MultipartFormDataStreamProvider(Path.GetTempPath());
var result = await Request.Content.ReadAsMultipartAsync(provider);
var model= result.FormData["Metadata"];
var fileData = result.FileData;//How it will retriev the file data
}
Mit einfachen JSON-Objekt nicht kann Datei streamen. Sie müssen eine mehrteilige Anfrage erstellen. Auf der JavaScript-Seite müssen Sie das File-Objekt erstellen, das mit einer mehrteiligen Anfrage an den Server übergeben wird. – dhavalcengg
Also gibt es keine andere Option als Multi-Form-Daten, um Stream an die API zu senden? –