2013-01-23 8 views
15

Już zadałem tutaj pytanie, w jaki sposób mogę odczytać przesłane pliki w Web Api bez konieczności ich zapisywania. To pytanie zostało odebrane za pomocą MultipartMemoryStreamProvider, ale jak uzyskać nazwę pliku za pomocą tej metody, aby wyprowadzić z niego typ przesłanego pliku?MultipartMemoryStreamProvider: filename?

poważaniem

+0

Link do innej kwestii, proszę. – Ben

Odpowiedz

26

Jest przykładem, w tym Kodeksu DotNetNuke here (Zobacz metodę PostFile()).

Updated podstawie @FilipW komentarza ...

Pobierz element treści można wymagać, a następnie uzyskać dostęp do właściwości FileName.

coś takiego:

 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

po prostu sprawdź headers.ContentDisposition.FileName.Replace ("\" ", string.Empty); - nie ma nagłówka" postfile ":) –

+0

@FilipW Rzeczywiście - moja niewiedza pokazująca tam, próbowała wyjaśnić, jak znaleźć poprawna HttpContent na podstawie nazwy pola, niepoprawnie przyjęta POSTFILE była normą i na pewno nie powinna była użyć terminu nagłówek, aby ją opisać.) Pozostawiono wybór zawartości do OP teraz. –

Powiązane problemy