Datei hochladen zum Web-API
Ich habe Folgendes Modell :
public class FileModel
{
public byte[] FileData{get;set;}
public string FileName {get;set;}
}
Habe ich codiert eine private Web-API-service, die meine Web-Anwendung.
Wenn die uploads von Dateien, konvertieren Sie diese Dateien in ein byte-array und senden eine List<FileModel>
auf meine Web-API aus C# - code (nicht von einer HTML-Seite, da meine Web-API ist privat von meiner website), das erspart mir die Datei und die Ergebnisse zurückgeben.
Web-API-Methode:
[HttpPost]
public UploadFiles(List<FileModel> files)
{
//Do work
}
Der obige code bricht, wenn ich hochladen vielen großen Dateien - code-Fehler beim serialisieren von großen Dateien' FileModel
s, da Sie mehr als die max serialisieren Länge.
Wie behebe ich dieses Problem? Gibt es eine andere Möglichkeit zum upload von Dateien auf Web-API, ohne dass es der Benutzer?
Verwenden chunk byte Ansatz der upload asynchron. stackoverflow.com/questions/583970/...
Ich will nicht, um mehrere web-api-Aufrufe.
InformationsquelleAutor Vignesh Pandi | 2017-10-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist eine Lösung für diese situation.
Ihre controller-Aktion akzeptiert keine Parameter, wie gezeigt, auf code-snippet.
Und den code oben für front-end-Probe.
InformationsquelleAutor narekye
Fügen Sie diese in Ihrem web.config-Datei.
Und auch steigern Sie Ihre content-Länge in MVC
config
Datei.maxRequestLength
Wert wird in Kilobyte.maxAllowedContentLength
Wert ist in Byte.Können Sie ändern über Größe entsprechend Ihren Anforderungen.
Wenn ich mit httpClient.PostAsJsonAsync<Liste<FileModel>>("API-URL",postObj). Ich eine Antwort zurück von Web-API-Methode nicht gefunden.
Dies ist aber nur für große Dateien
Ich denke, dass httpClient ist nicht mein Objekt serialisieren zu Json und sendet leeres Objekt, und damit bin ich immer Web-API-Methode nicht gefunden Antwort. Dies ist meine beste Vermutung.
meine web.config content-length : "<requestLimits maxAllowedContentLength="52428800 gesetzt" />
InformationsquelleAutor Amit Kumar