2014-11-25 6 views
1

У меня есть код:Получить информацию о файле из System.Web.HttpInputStream

public Upload.UploadResponse Post(Upload.UploadRequest request) 
    { 

     Stream str = request.RequestStream; // RequestStream is System.Web.HttpInputStream 
     byte[] result; 
     using (var streamReader = new MemoryStream()) 
     { 
      str.CopyTo(streamReader); 
      result = streamReader.ToArray(); 
     } 
     return new Upload.UploadResponse() { Successed = 1 }; 
    } 

Есть ли способ, чтобы получить имя файла (с расширением) из MemoryStream или потока или System.Web.HttpInputStream (часть Upload. UploadRequest) без сохранения файла? Мне нужно узнать файл, не зная, что мне отправлено. Я пытался передать его в FileStream, но это было null. Рамки обслуживания, которые я использую, представляют собой стек службы ServiceStack

Редактировать: Может быть, мне нужно отправить информацию о файле с запросом?

p.s извините за мой плохой английский любые исправления приветствуются

EDIT:

это UploadClass, что я использую для кода выше

public class Upload 
{ 

    [Route("/upload")] 
    public class UploadRequest : IRequiresRequestStream 
    { 
     public System.IO.Stream RequestStream { set; get; } 

    } 

    public class UploadResponse 
    { 
     public int Successed { set; get; } 

    } 
} 
+1

Как выглядит «Upload.UploadRequest»? это ваш класс? как это обусловлено? это загрузка из браузера или из другого места? Нет, имя файла с расширением не будет в вашем потоке ввода, если вы не разместите его сами (то есть, вы закодировали клиента или предоставили такие инструкции) – Tewr

ответ

2

Вы не можете извлечь имя файла из потока.

Вам необходимо добавить свойство FileName в ваш запрос.

Смежные вопросы