【问题标题】:Double file upload in session when using multiple file upload in jQuery ajax in ASP.NET MVC在 ASP.NET MVC 中的 jQuery ajax 中使用多文件上传时,会话中的双文件上传
【发布时间】:2017-07-10 16:44:55
【问题描述】:

我使用此代码与jQuery ajaxASP.NET MVC 中进行多次上传:

public ActionResult GetFiles(HttpPostedFileBase NewsFilePath)
{
    if (NewsFilePath != null)
    {
        var files = Session["Files"] == null ?
            new List<HttpPostedFileBase>() :
            (List<HttpPostedFileBase>)Session["Files"];
        files.Add(NewsFilePath);
        Session["Files"] = files;
    }
    return Content("");
}

但我对这段代码有疑问。

  • 当我上传一个文件时,一个文件存储到会话中
  • 当我上传两个文件时,会话中存储了 4 个文件
  • 当我上传三个文件时,会话中存储了 6 个文件

有什么问题?

【问题讨论】:

  • 你是一个一个附加还是全选多次调用getfiles?
  • 您似乎总是添加到存储在会话中的"Files" 列表中。所以这个列表会越来越大。
  • @Amit 一个一个附上
  • @DarinDimitrov 我该如何解决这个问题?
  • 这取决于您要达到的目标。您尚未提供有关您的应用程序的任何上下文。

标签: c# asp.net asp.net-mvc asp.net-mvc-4 asp.net-mvc-3


【解决方案1】:

将文件分配给Session时使用.Distinct()

    public ActionResult GetFiles(HttpPostedFileBase NewsFilePath)
    {
        if (NewsFilePath != null)
        {
            var files = Session["Files"] == null ?
                new List<HttpPostedFileBase>() :
                (List<HttpPostedFileBase>)Session["Files"];
            files.Add(NewsFilePath);
            Session["Files"] = files.Distinct();
        }
        return Content("");
    }

希望它能解决您的问题,如果没有,请在下面发表评论。

【讨论】:

  • 好吧,我换个逻辑,过段时间我会更新答案。
猜你喜欢
  • 1970-01-01
  • 2011-01-26
  • 2011-06-12
  • 1970-01-01
  • 2021-12-10
  • 2011-10-03
  • 2020-12-25
相关资源
最近更新 更多