从客户端 httppostedfilebase

问题描述

我在用 MVC4 制作的 IIS 上托管了一个网站。其中有一个文件上传按钮。上传文件时,文件名会出现在视图中。我正在使用 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 上文件位置的链接,而不是文件名。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)