ASP.NET -Anforderung - Kann ich eine veröffentlichte Datei von einem auf dem Client erstellten dynamischen Steuerelement erhalten?

StackOverflow https://stackoverflow.com/questions/803255

Frage

Ich habe eine Websteuerung mit benutzerdefiniertem JavaScript. Das JavaScript erstellt neue Datei -Upload -Steuerelemente auf dem Client, das dynamisch mit Code ähnelt wie folgt:

var newFileUpload = document.createElement('input');
newFileUpload.type = 'file';
container.appendChild(newFileUpload); // where container is a div

Dies existiert in einem ASP.NET-Formular mit einem auf Multipart/Formdaten eingestellten EngeTe-Set. Ich werde 1 - N -Steuerelemente auf der Seite haben (natürlich beschränkt auf eine angemessene Anzahl).

Ich möchte jetzt die hochgeladenen Dateien in meiner ASP.NET -Anwendung erfassen. Aufgrund des oben genannten Ansatzes weiß ich, dass ich sie nicht so erfassen kann, wie ich es aus einer Datei -Pload -Steuerung tun würde (was ich leider nicht verwenden kann). Gibt es eine andere Möglichkeit, die hochgeladenen Dateien zu erfassen?

Ich habe eine Reihe von Bereichen durchgesehen, darunter:

  • Request.files
  • Request.form
  • Request.form.keys
  • Request.inputStream

Aber ich konnte den Inhalt nicht finden. Ich glaube, der Client übermittelt diese Daten korrekt, konnte jedoch nicht feststellen, was der Server mit den RAW -Anforderungsinformationen macht (falls dies überhaupt freigelegt ist).

Hat jemand Vorschläge zu Bereichen, die ich weiter untersuchen könnte?

Vielen Dank

War es hilfreich?

Lösung

Sie sollten a hinzufügen einzigartiger Name zu Ihrem Upload -Element, um es von Request.Form Collection zu erhalten.

var newFileUpload = document.createElement('input');
newFileUpload.type = 'file';
//newFileUpload.id = 'file01';
newFileUpload.name = 'file01';
container.appendChild(newFileUpload);

BEARBEITEN : Ich habe es mit Ausweis und Namen des Namens ausprobiert, die mit Namen, Sie können den Inhalt von erhalten

Request.Form["file01"]

Auch wenn Sie das folgende Attribut zu Ihrem Formularelement hinzufügen sollten. Auf diese Weise können Sie den Dateiinhalt per request.files ["file01"] abrufen:

enctype="multipart/form-data"
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top