首页 > 解决方案 > 从客户端 httppostedfilebase 上传文件时找不到路径的一部分

问题描述

我有一个托管在 IIS 上的网站,它是用 MVC4 制作的。其中有一个文件上传按钮。上传文件后,文件名会出现在视图中。我正在使用 HttpPostedFilebase 上传文件。90% 的时间它都在工作。但是,在极少数情况下,某些文件不会上传,我会收到错误消息:“找不到路径 C:\Users... 的一部分”。

此路径存在,我正在从文件资源管理器对话框中选择文件。可能是什么问题,我该如何调试,请帮忙。这发生在客户端用户身上。

代码:

我基本上有一个带有文件上传按钮的剃刀视图,用户可以在其中上传多个文件。

  <input type="file" id="files" name="files" multiple/>

在后端,我将它们保存到服务器,如下所示:

控制器:

  if (files != null)

                    foreach (var file in files)
                    {
                        UploadFile(file);

                      
                    }

files 被定义为控制器签名中的入口参数:

    [HttpPost]       
    public ActionResult Index(IEnumerable<HttpPostedFileBase> files)
    

功能:

public string UploadFile(HttpPostedFileBase file)
    {

        if (file != null && file.ContentLength > 0)
        {

            var path = Path.Combine(Server.MapPath("~/Files/"), file.FileName);


            if (System.IO.File.Exists(path))
            {
                System.IO.File.Delete(path);
            }
            try
            {

                file.SaveAs(path);
            }
            catch (Exception ex)
            {
                Log.LogError(string.Format("Unexpected error"));
            }

            return file.FileName;
        }
        return "";
    }

现在,所有这些都有效,但是在极少数情况下,某些文件不会上传 - 而是在视图中显示指向 PC 上文件位置的链接,而不是文件名。

标签: c#asp.net-mvc-4file-uploadhttppostedfilebase

解决方案


推荐阅读