我有一個允許用戶上傳word和pdf文檔的應用程序。我的模型中還有一個類收集關於文件的一些元數據(即文件大小,內容類型等)。將HttpPostedFileBase作爲參數傳遞
我要集中一些「保存」功能(包括保存元數據到數據庫中,並保存實際的文件服務器)。我想將HttpPostedFileBase傳遞給我的服務層,然後使用內置的.SaveAs(文件名)功能。但是,我似乎無法弄清楚如何將文件類型傳遞給另一種方法。我已經試過以下:
public ActionResult Index(HttpPostedFileBase uploadedDocument)
{
string fileName = "asdfasdf";
SomeClass foo = new SomeClass();
//this works fine
uploadedDocument.SaveAs(fileName)
//this does not work
foo.Save(uploadedDocument, fileName);
}
public class SomeClass
{
public void Save(HttpPostedFile file, string fileName)
{
//database save
file.SaveAs(fileName);
}
}
當我嘗試通過HttpPostedFile插入SomeClass的保存方法,有一個編譯器錯誤(因爲在上面,uploadedDocument的類型是HttpPostedFileBase的,不HttpPostedFile)。
但是,如果我嘗試將uploadedDocument投射到HttpPostedFile,它不起作用。
所以,具體而言,我怎樣才能將HttpPostedFileBase傳遞給另一個方法?或者,更一般地說,如果我要將HttpPostedFileBase.InputStream傳遞給另一個方法,那麼如何將該文檔保存到服務器?請注意,文檔不是圖像,我不會將響應傳輸給用戶,因此寫入響應流並不合適......我想。