0

我有一个路径(存储为字符串) - 例如\\documents\doc1.txt. 我正在尝试使用字符串路径表示的文件初始化 HttpPostedFileBase 类型的变量。请问我该怎么做?我看过像这样的方法

 Model.File[count] = File.Open(item.PictureDirectory, FileMode.Open); 

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

FileStream file = File.OpenRead(filepath);

但是如何将其转换为 httppostedfilebase?

我正在尝试完全按照此处发布的内容

4

1 回答 1

0

首先,在另一个问题链接中,有一个需要 aHttpPostedFileBase作为输入的方法,然后要求您发送一个不会自动传输为 a的文件HttpPostedFileBase,这表明您需要重构该方法。在 Pommy 的示例中,也许输入Stream会更合适?

现在,如果你绝对必须有一个 的实例HttpPostedFileBase,这就是你要面对的。该类是 abstract,因此您永远不会直接构造它。相反,您需要构造一个继承类。在标准库中,HttpPostedFileWrapper继承并HttpPostedFile作为构造函数输入

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

那么,您的选择是:

  1. 在 System.Web 中找到一个工厂或其他方法,它们将为您构造一个 HttpPostedFile 实例(我怀疑您不会找到那个)。
  2. 实现你自己的继承类 base HttpPostedFileBase。这应该很简单,它只是一个小类,并且根据您使用它的代码,您甚至可能不必实现所有方法。
  3. 如果可能的话,我推荐的方法 - 重构您的代码以使用HttpPostedFileBase,然后Stream改用。
于 2013-01-16T21:15:28.660 回答