Поток приходит из html формы через ajax var jqXHR = data.submit();
public static GetWordPlainText(Stream readStream,string filePath)
{
WordprocessingDocument.Open(readStream, readStream.CanRead);
}
[HttpPost]
public ActionResult FileUpload()
{
var MyFile = Request.Files[0];
if (Request.Files.Count > 0 && MyFile != null)
{
GetWordPlainText(Request.InputStream);
}
}
Я получаю эту ошибку:
Не удается открыть пакет, так как значение FileMode или FileAccess недопустимо для потока.
Я гуглю Не могу открыть пакет, потому что значение FileMode или FileAccess недействительно для потока, но не могу найти ничего полезного. Любые идеи?
PS: Изначально я сильно упростил код для размещения здесь. Добавлен оператор if, чтобы стереть беспокойство Стена Петрова. Я надеюсь, что Request.File.count>0 решит его проблему... У меня все та же проблема...
ОБНОВИТЬ
В качестве обходного пути я последовал приведенному ниже совету и сохранил файл в каталоге, а затем использовал openxml, чтобы прочитать его из каталога.
var MyFile = Request.Files[0];
var path = Path.Combine(Server.MapPath("~/App_Data/temp"), MyFile.FileName);
using (MemoryStream ms = new MemoryStream())
{
//if file exist plz!!!! TODO
Request.Files[0].InputStream.CopyTo(ms);
System.IO.File.WriteAllBytes(path, ms.ToArray());
}
затем WordprocessingDocument.Open
есть реализация пути к файлу, так что WordprocessingDocument.Open(path);
надеюсь, вы поняли, что я сделал для будущих людей, у которых возникнут проблемы.