C#:从文件路径初始化HttpPostedFileBase(字符串)

时间:2013-01-16 20:41:38

标签: c# file path httppostedfilebase

我有一条路径(存储为字符串) - 例如\\documents\doc1.txt。我试图用字符串路径表示的文件初始化HttpPostedFileBase类型的变量。我该怎么办?  我看过像

这样的方法
 Model.File[count] = File.Open(item.PictureDirectory, FileMode.Open); 

但这些返回System.io.filestream对象。

FileStream file = File.OpenRead(filepath);

但是如何将其转换为httppostedfilebase?

我正在尝试完成发布here

的内容

1 个答案:

答案 0 :(得分:0)

首先,正如在另一个问题链接中那样,有一个方法需要HttpPostedFileBase作为输入,然后要求你发送一个文件而不是自动转移为{{ 1}},建议您需要重构该方法。在Pommy的例子中,或许HttpPostedFileBase的输入更合适?

现在,如果你绝对必须拥有Stream的实例,那么这就是你要反对的内容。 The class is abstract,所以你永远不会直接构建它。相反,您需要构建一个继承类。在标准库中,HttpPostedFileBase继承,并将HttpPostedFileWrapper作为constructor input

但是这就是问题,HttpPostedFile的构造函数是内部的,所以在System.Web库之外,你不是直接构造一个实例。

您的选择是:

  1. 在System.Web中找到一个工厂或其他方法,为你构建一个HttpPostedFile实例(我怀疑你不会发现它)。
  2. 实现您自己的基类HttpPostedFile的继承类。这应该很简单,它只是一个小类,根据你使用它的代码,你甚至可能不需要实现所有方法。
  3. 我推荐的方法,如果可能的话 - 将您的代码重构为而不是使用HttpPostedFileBase,并改为使用HttpPostedFileBase代替。