Обрабатывать загруженный файл без его сохранения? - PullRequest
2 голосов
/ 01 июня 2011

Я загружаю файл, используя следующий код

[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.

Ответы [ 2 ]

3 голосов
/ 01 июня 2011

Конечно, вы можете. Как предложил Патко, свойство InputStream можно использовать для другого потока. Например, я сделал это для загруженного XML-документа для использования с LINQ to XML:

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

Ура, Chris

2 голосов
/ 01 июня 2011

Свойство HttpPostedFileBase.InputStream выглядит многообещающе. Вы должны иметь возможность использовать это и сохранять данные в любом другом потоке, который вам нужен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...