2013-01-23 14 views
15

Ho già chiesto qui come posso leggere i file caricati in Web Api senza la necessità di salvarli. Questa domanda ha avuto risposta con MultipartMemoryStreamProvider, ma come faccio a ottenere il nome file con questo metodo per ricavare il tipo di file caricato da esso?MultipartMemoryStreamProvider: filename?

Cordiali saluti

+0

Un link all'altra domanda, per favore. – Ben

risposta

26

C'è un esempio in questo Codice DotNetNuke here (vedere il metodo PostFile()).

Aggiornato sulla base di commento @FilipW ...

Ottenere l'elemento di contenuto desiderata e quindi accedere alla proprietà nome del file.

Qualcosa di simile a questo:

 var provider = new MultipartMemoryStreamProvider(); 
     var task = request.Content.ReadAsMultipartAsync(provider). 
      ContinueWith(o => 
       { 
        //Select the appropriate content item this assumes only 1 part 
        var fileContent = provider.Contents.SingleOrDefault(); 

        if (fileContent != null) 
        { 
         var fileName = fileContent.Headers.ContentDisposition.FileName.Replace("\"", string.Empty); 
        } 
       } 
+4

basta controllare headers.ContentDisposition.FileName.Replace ("\" ", string.Empty); - non c'è un'intestazione" postfile ":) –

+0

@FilipW In effetti - la mia ignoranza mostra attraverso di lì. Cercavo di spiegare come trovare il corretto HttpContent in base al nome del campo, si presupponeva erroneamente che POSTFILE fosse uno standard, e certamente non avrebbe dovuto usare l'intestazione del termine per descriverlo, lasciando la selezione del contenuto fino all'OP adesso. –

Problemi correlati