Ist es möglich, übergeben eine Datei aus einem Datei-Eingang an einen Controller mit jQuery?

Ich bin versucht, übergeben Sie eine Datei in meinen Controller wie ein HttpPostedFileBase so kann ich parse die Datei durchläuft und weiterleiten von Informationen zurück an die Seite. Zum Beispiel, ich möchte, dass ein Benutzer zum importieren einer vCard-Datei, und haben es automatisch füllen Sie ein Kontakt Formular erstellen PartialView.

Ich würde dies gerne tun, indem in der Datei, füllen mein Modell und dann wieder ein PartialView des Formulars auf der Seite angezeigt. Ich habe versucht jQuery wie unten, aber ich kann nie meine HttpPostedFileBase passieren, richtig (immer null). Halten Sie im Verstand, die ich brauche, um Zugriff auf den InputStream der Datei einmal gepostet.

var file = "files=" + $("#fileInput").files[0];
$.post("/Contacts/UploadContact/", file, function (returnHtml) {
    alert(returnHtml);
    $("#contactContainer").html(returnHtml);
});

Ist es möglich, posten Sie eine Datei in meinen Controller wie ein HttpPostedFileBase über jQuery?

Ajax Datei-uploads sind nicht trivial. Vielleicht ist dieses plugin könnte helfen: malsup.com/jquery/form
Muss es AJAX ? Einfacher zu verwenden enctype="multipart/form-Daten in einer form
das stimmt, aber da er über einen jQuery - post() ich davon ausgegangen, er braucht eine AJAX-Lösung
Dang antwortete ich das schon, und die Frage wurde gelöscht, ich bin zu faul zum umbuchen der ganzen frikkin Sache (es ist groß) heute Abend wieder ...lange Geschichte kurz, ja Sie könnten, aber es ist kompliziert und ajax-fileApi nicht so stark unterstützt noch. Machen Sie ein Formular mit fileupload (classic stuff) ..nun kleben Sie es in einem iframe und Kontrolle der iframe per JS. Funktioniert auf allen Plattformen, einschließlich mobiler (ios, android..)
Du hast Recht, ich hätte lieber, es werden Ajax-wenn möglich. Allerdings, wenn dies erweist sich als zu viel von einem Schmerz ich kann eine Ausnahme machen

InformationsquelleAutor Lando | 2013-10-30

Schreibe einen Kommentar