从System.Web.HttpInputStream获取文件信息

时间:2014-11-25 14:35:33

标签: c# .net file casting stream

我有代码:

    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

编辑:也许我需要发送带有请求的文件信息?

对不起我的英语很差,欢迎任何更正

编辑:

这是我用于上面代码

的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 个答案:

答案 0 :(得分:3)

您无法从流中提取文件名。

您需要将FileName属性添加到您的请求中。