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

È stato utile?

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"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top