实现MVP模式的文件上传

本文关键字:文件 MVP 模式 实现 | 更新日期: 2023-09-27 17:53:56

我是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)
    {                
    }
}

实现MVP模式的文件上传

您将无法在业务逻辑中使用System.Web。事实上,你不应该。

可以对控制器进行编码,使其接受来自客户机的文件,并将其保存在本地服务器的某个地方。然后,将文件名传递给业务逻辑层以进行进一步处理。

和你的后续问题:

。我正在将文件读入内存流。通过合适吗将内存流传送给演示者,在其中执行业务逻辑演示者,最后在视图中设置文件上传状态?

是的,这也可以:传递流而不是文件名。