Richiesta ASP.NET - Posso ottenere un file pubblicato da un controllo dinamico creato sul client?
-
03-07-2019 - |
Domanda
Ho un controllo web con alcuni javascript personalizzati. Il javascript crea nuovi controlli di caricamento dei file sul client in modo dinamico usando un codice simile a:
var newFileUpload = document.createElement('input');
newFileUpload.type = 'file';
container.appendChild(newFileUpload); // where container is a div
Questo esiste in un modulo ASP.NET con encType impostato su multipart / form-data. Avrò 1 - n controlli sulla pagina (beh, ovviamente limitato a un numero ragionevole).
Ora vorrei catturare i file caricati nella mia applicazione ASP.NET. A causa dell'approccio di cui sopra so che non posso acquisirli come farei con un controllo FileUpload (che purtroppo non posso usare). C'è un altro modo per acquisire i file caricati?
Ho esaminato diverse aree, tra cui:
- Request.Files
- Request.Form
- Request.Form.Keys
- Request.InputStream
Ma non sono stato in grado di trovare il contenuto. Credo che il client stia inviando questi dati correttamente ma non sono stato in grado di determinare cosa fa il server con le informazioni sulla richiesta non elaborata (se queste sono persino esposte).
Qualcuno ha qualche suggerimento su aree che potrei esplorare ulteriormente?
Grazie
Soluzione
Dovresti aggiungere un nome univoco al tuo elemento di caricamento per ottenerlo dalla raccolta Request.Form.
var newFileUpload = document.createElement('input');
newFileUpload.type = 'file';
//newFileUpload.id = 'file01';
newFileUpload.name = 'file01';
container.appendChild(newFileUpload);
EDIT: ho provato id e name attibutes, con il nome, puoi ottenere il contenuto di
Request.Form["file01"]
Anche se dovresti aggiungere l'attributo qui sotto al tuo elemento del modulo. Ciò ti consente di ottenere il contenuto del file tramite Request.Files [" file01 "]:
enctype="multipart/form-data"