实现文件上传的MVP模式

时间:2013-01-16 21:59:49

标签: c# asp.net file-upload webforms 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 个答案:

答案 0 :(得分:1)

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

您可以将控制器编码为从客户端接受文件并将其保存在本地服务器的某个位置。然后,将文件名传递给业务逻辑层以进行进一步处理。

您的后续问题:

  

Q值。我正在将文件读入内存流。通过是否可取   内存流到演示者,执行业务逻辑   演示者,最后在视图中设置文件上传状态?

是的,这也有效:传递流而不是文件名。