从请求中提取文件

本文关键字:文件 提取 请求 | 更新日期: 2023-09-27 18:12:36

我使用ASP.net MVC 5。下面的代码用于存储文件,但我需要存储请求或从请求中提取上传的文件,以便在上传到文件服务器之前将文件传递给另一个类中的方法进行验证。我注意到下面的Request.Files[upload]。savea包含文件,但是如何将文件传递给另一个类呢?我尝试将HttpPostedFileBase文件传递给另一个类,但它不识别文件。

在我看来:

 @using (Html.BeginForm("FileUpload",
                          "Upload", 
                          FormMethod.Post,
                          new { enctype = "multipart/form-data" }))
  { <label for="file">Upload Image:</label> 
         <input type="file" name="FileUpload" /><br />
         <input type="submit" name="Submit" id="Submit" value="Upload" />
 }

我的控制器:

 public ActionResult FileUpload(HttpPostedFileBase file)
    {
        //HttpPostedFileBase request = file; 
        foreach (string upload in Request.Files)
        {
          System.Diagnostics.Debug.WriteLine("*********************savepath:" + Request.Files[upload].FileName+"********************");
            string savePath = "C:'desktop";
            string newPathForFile = Path.Combine(savePath, Path.GetFileName(Request.Files[upload].FileName));
            Request.Files[upload].SaveAs(Path.Combine(savePath, newPathForFile));
        }
        return View("Home");
    }

从请求中提取文件

您不能真正传递"文件",因为此时确实没有文件。我们实际上是在看一堆字节。你的请求。文件也应该有一个InputStream。使用它将文件复制到Byte[]缓冲区,并从那里开始。