2009-04-29 2 views
2

Ich habe ein Web-Steuerelement mit einigen benutzerdefinierten Javascript. Die Javascript erstellt neuen Datei-Upload-Steuerelemente auf dem Client dynamisch Code ähnlich ist:ASP.NET-Anfrage - Kann ich eine gepostete Datei von einem dynamischen Steuerelement erhalten, das auf dem Client erstellt wurde?

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

Diese besteht in einer ASP.NET-Form mit enctype gesetzt/form-data auf multipart. Ich werde 1 - n Kontrollen auf der Seite haben (gut, begrenzt auf eine vernünftige Anzahl, natürlich).

Ich möchte jetzt die hochgeladenen Dateien in meiner ASP.NET-Anwendung erfassen. Aufgrund des oben beschriebenen Ansatzes weiß ich, dass ich sie nicht wie bei einem FileUpload-Steuerelement erfassen kann (was ich leider nicht verwenden kann). Gibt es eine andere Möglichkeit, die hochgeladenen Dateien zu erfassen?

habe ich durch eine Reihe von Gebieten sah, einschließlich:

  • Request.Files
  • Request.Form
  • Request.Form.Keys
  • Request.InputStream

Aber ich konnte den Inhalt nicht finden. Ich glaube, dass der Client diese Daten korrekt übermittelt, aber nicht feststellen konnte, was der Server mit den unformatierten Anforderungsinformationen macht (falls dies überhaupt möglich ist).

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

Dank

Antwort

2

Sie sollen einen eindeutigen Namen zu Ihrem Upload-Elemente hinzufügen aus Request.Form Sammlung zu bekommen.

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

EDIT: habe ich versucht, id und namen attibutes, der mit dem Namen, den Inhalt von

Request.Form["file01"] 

auch erhalten, wenn Sie das Attribut unten in dem Formular Element hinzufügen sollten. Dies ermöglicht Ihnen, den Inhalt der Datei von Request.Files zu erhalten [ „FILE01“]:

enctype="multipart/form-data" 
+0

Hmmm, ich habe versucht, das, und es ist immer noch nicht in der Request.Form Sammlung. Würde ich noch etwas tun müssen? – Chris

+0

mit dem Namen Attribut sollte funktionieren –

+0

Ahhh, Name - jetzt, dass ich es noch nicht versucht habe. Vielen Dank, ich werde es versuchen! Ich habe bereits den encType, also sollte es gut gehen. Jetzt hast du mein Gedächtnis jogged ich scheinen mich zu erinnern, verwendet die Anfrage Name nicht ID? Danke :) – Chris

Verwandte Themen