2014-11-25 40 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(上傳的一部分,獲取文件名(帶擴展名)。 UploadRequest請求)而不保存文件?我需要在不知道發送給我的內容的情況下識別文件。我試圖將它轉換爲FileStream,但它是空的。我正在使用的服務框架是服務棧ServiceStack

編輯:也許我需要發送文件信息與請求?對不起,我的英語不好

P.S任何更正,歡迎

編輯:

這是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 2014-11-25 15:49:45

回答

2

不能從流中提取文件名。

您需要將FileName屬性添加到您的請求中。