处理上传的文件而不保存它?

发布于 2024-11-11 19:19:22 字数 843 浏览 0 评论 0原文

我正在使用以下代码上传文件,

[HttpPost]
public ActionResult ImportDeleteCourse(ImportFromExcel model)
{
  var excelFile = model.ExcelFile;
  if (ModelState.IsValid)
  {
     OrganisationServices services = new OrganisationServices();
     string filePath = Path.Combine(HttpContext.Server.MapPath("../Uploads"),
                                  Path.GetFileName(excelFile.FileName));

    excelFile.SaveAs(filePath);
    // ... snipped //
  }
}

我实际上不需要存储上传的 Excel 文件。无论如何我可以在不保存的情况下处理它吗?

注意:ImportFromExcel 类只不过是一个模型,基本上是:

  public class ImportFromExcel
    {
        [Required(ErrorMessage = "Please select an Excel file to upload.")]
        [DisplayName("Excel File")]
        public HttpPostedFileWrapper ExcelFile { get; set; }
    }

最有趣的部分是它包装了 HttpPostedFileWrapper。

I am uploading a file using the following code

[HttpPost]
public ActionResult ImportDeleteCourse(ImportFromExcel model)
{
  var excelFile = model.ExcelFile;
  if (ModelState.IsValid)
  {
     OrganisationServices services = new OrganisationServices();
     string filePath = Path.Combine(HttpContext.Server.MapPath("../Uploads"),
                                  Path.GetFileName(excelFile.FileName));

    excelFile.SaveAs(filePath);
    // ... snipped //
  }
}

I do not really need to do store the uploaded excel file. Is there anyway I can process it without saving?

Note: The ImportFromExcel class is nothing but a model, which is basically:

  public class ImportFromExcel
    {
        [Required(ErrorMessage = "Please select an Excel file to upload.")]
        [DisplayName("Excel File")]
        public HttpPostedFileWrapper ExcelFile { get; set; }
    }

The most interesting part is that it wraps a HttpPostedFileWrapper.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

喜爱皱眉﹌ 2024-11-18 19:19:22

当然可以。正如 Patko 所建议的,InputStream 属性可用于另一个流。例如,我对上传的 xml 文档执行了此操作,以便与 LINQ to XML 一起使用:

XDocument XmlDoc = XDocument.Load(new StreamReader(viewmodel.FileUpload.InputStream))

干杯,
克里斯

Sure you can. As Patko suggested, the InputStream property can be used for another stream. For example I did this for an uploaded xml document to use with LINQ to XML:

XDocument XmlDoc = XDocument.Load(new StreamReader(viewmodel.FileUpload.InputStream))

Cheers,
Chris

久夏青 2024-11-18 19:19:22

HttpPostedFileBase.InputStream 属性看起来很有前途。您应该能够使用它并将数据保存到您需要的任何其他流。

The HttpPostedFileBase.InputStream property looks promising. You should be able to use that and save the data to whichever other stream you need to.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文