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

C# 从System.Web.HttpInputStream获取文件信息,c#,.net,file,casting,stream,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())

我有密码:

    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或stream或System.Web.HttpInputStream(Upload.UploadRequest请求的一部分)获取文件名(扩展名)而不保存文件?我需要在不知道发送给我什么的情况下识别文件。我试图将其强制转换为FileStream,但它为空。我使用的服务框架是服务堆栈

编辑:也许我需要随请求发送文件信息

p、 It’很抱歉我的英语不好,欢迎改正

编辑:

这是我用于上面代码的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; }

    }
}

无法从流中提取文件名


您需要在请求中添加FileName属性。

上传。上传请求是什么样子的?是你的课吗?它是如何实例化的?上传是来自浏览器还是其他地方?不,带扩展名的文件名将不会出现在输入流中,除非您自己将其放在那里(即,您对客户端进行了编码,或提供了此类说明)