HttpPostedFileBase转换为HttpPostedFile

时间:2016-03-21 14:14:20

标签: c# .net

是否有可能转换HttpPostedFileBase to HttpPostedFile,我尝试搜索SO问题,我只能找到相反的情况HttpPostedFileHttpPostedFileBase ......

试过阅读: http://www.prideparrot.com/blog/archive/2012/8/uploading_and_returning_files

他声明“在某些情况下,我们需要将HttpPostedFileBase转换为HttpPostedFile,我们可以使用HttpPostedFileWrapper来实现这一目标。”那么我该怎么办呢?

请不要告诉我使用HttpPostedFileBase,因为我使用的是DevExpress框架UploadedFile类,它只在其构造函数中接受HttpPostedFile

我尝试这样做,但不知道我应该写什么HttpPostedFile

HttpFileCollectionBase files = Request.Files;

for (int i = 0; i < files.Count; i++)
{
    var file = files.Get(i);
}

提前感谢您的时间和帮助。

2 个答案:

答案 0 :(得分:2)

我的问题的解决方案如下:

        List<UploadedFile> uploadedFiles = new List<UploadedFile>();

        var files = Request.Files;

        for (int i = 0; i < files.Count; i++)
        {
            var file = files.Get(i);
            var constructorInfo = typeof(HttpPostedFile).GetConstructors(BindingFlags.NonPublic | BindingFlags.Instance)[0];
            var obj = (HttpPostedFile)constructorInfo
                      .Invoke(new object[] { file.FileName, file.ContentType, file.InputStream });


            uploadedFiles.Add(new UploadedFile(obj));
        }

答案 1 :(得分:1)

此帖似乎可以满足您的需求。你必须得到HttpPostedFileBase内的字节数组,但它应该可以解决这个问题:

How to instantiate a HttpPostedFile