上传的文件未显示在Project解决方案中(Mvc5)

时间:2014-08-11 19:10:17

标签: c# asp.net-mvc asp.net-mvc-5

我已实现以下代码来上传文件。该文件将上载到该位置(“../App_Data/uploads”),但它不会显示在项目中。我必须在项目中手动包含该文件。为什么文件没有显示?

 public ActionResult ChangeSetting(SettingViewModel setting)
    {
        string userId = User.Identity.GetUserId();
        ApplicationUser currentUser = this._appUserRepo.Find(e => e.Id.Equals(userId)).FirstOrDefault();

        if (setting.PictureUrl != null)
        {
            if (setting.PictureUrl.ContentLength > 0)
            {
                string fileName = Path.GetFileName(setting.PictureUrl.FileName);
                if (fileName != null)
                {

                    string path = Path.Combine(Server.MapPath("../App_Data/uploads"), fileName);
                    setting.PictureUrl.SaveAs(path);
                    if (currentUser != null)
                    {
                        currentUser.PictureUrl = path;
                        currentUser.PictureSmalUrl = path;
                        currentUser.PictureBigUrl = path;
                    }
                }
            }
        }
        if (setting.FirstName != null)
        {
            if (currentUser != null) currentUser.FirstName = setting.FirstName;
        }           
        _appUserRepo.Update(currentUser);
        return RedirectToAction("index", "Admin");
    }

1 个答案:

答案 0 :(得分:7)

  

为什么文件没有显示?

因为Visual Studio项目的工作原理 - 只有手动包含在项目中的文件才会显示在解决方案资源管理器中。之后由永久进程动态添加到文件夹的文件不会显示在Visual Studio中(除非您手动包含它们并使它们成为解决方案的一部分)。但这可能不是你应该担心的事情。用户上传的文件不会自动出现在Visual Studio项目中。重要的是它们存在于预期的位置,并且您的Web应用程序能够在运行时访问它们。只需在Windows资源管理器中打开文件夹的物理位置,即可确认您的代码是否按预期工作。