2013-01-16 87 views
2

我是新來的MVP模式。我不清楚在哪裏編寫將文件上傳到服務器的邏輯,然後在上傳後執行一些驗證步驟和數據庫操作。請指教。實現文件上傳的MVP模式

public interface IPresenter 
{ 
    void UploadFile(string fileName); //For simplicity, file name is passed; 
             //it can be declared as a property 
}  

public interface IDefaultView 
{ 
    void Upload(); 
} 

public class DefaultPresenter : IPresenter 
{ 
    protected DefaultPresenter() {} 

    public DefaultPresenter(IDefaultView defaultview) 
    { 
     this.defaultView = defaultView; 
    } 

    public void UploadFile(string fileName) 
    { 
     //Do I need to write saving functionality here or call 
     //defaultView.Upload(fileName)? 
     // 
     //From online articles, I have seen all business functionality written here. 
     //But I think I will not be able to use System.Web in this layer. 
    } 
} 

public partial class UploadExtract: IDefaultView  
{ 
    public void Upload(fileName) 
    {     
    } 
} 

回答

1

您將無法在業務邏輯中使用System.Web。事實上,你不應該這樣做。

您可以編寫控制器以接受來自客戶端的文件並將其保存在本地服務器的某個位置。然後,將文件名傳遞給您的業務邏輯層以進行進一步處理。

而且你的後續問題:

問:我把文件讀入內存流。建議將 內存流傳遞給演示者,執行 演示者中的業務邏輯,並最終設置文件上傳狀態?

是的,也可以使用:傳遞流而不是文件名。