Ich habe versucht, ein Array von Dateien auf einen MVC
Controller hochladen, aber bisher nicht gelungen, wie die HttpPostedFileBase[]
null
auf der Controller-Antwort-Methode.FormData Ajax Anfrage mit Datei-Upload
Zuerst habe ich speichern mehrere hochgeladene Dateien in eine Variable wie folgt aus:
$("#file").change(function() {
fileArray[fileId] = this.files[0];
fileId++;
});
Das Anfügen von Dateien an das Array funktioniert gut (markiert mit Chrome Debugger).
Später, wenn der Benutzer die Bilder trägt, ich bin die Daten in ein Formdata-Objekt angehängt:
var data = new FormData();
$.each(fileArray, function (key, value) {
data.append('files[]', value);
});
Dann endlich Ich mache den AJAX
Call:
var serviceURL = '@Url.Action("OpenMaterialRequestSubmit", "OpenMaterialRequest")';
$.ajax({
type: "POST",
url: serviceURL,
data: data,
cache: false,
processData: false,
contentType: false,
success: successFunc,
error: errorFunc
});
von empfangen werden Meine Controller-Methode, mit der folgenden Überschrift:
[HttpPost]
public async Task<ActionResult> OpenMaterialRequestSubmit(HttpPostedFileBase[] files)
files
, wie ich schon sagte, ist immer null
.
Anfrage-Payload auf Google Chrome Debugger:
------WebKitFormBoundaryniIQHyAUAYUfecDX
Content-Disposition: form-data; name="files[]"; filename="Screen Shot 2015-12-03 at 9.19.02 AM.png"
Content-Type: image/png
------WebKitFormBoundaryniIQHyAUAYUfecDX--
Jeder Hinweis?
'Content- type sollte 'multipart/form-data' sein –