Der Strom aus einem HTML-Formular über Ajax kommt var jqXHR = data.submit();
OpenXml kann nicht geöffnet Paket, weil Filemode oder Fileaccess-Wert nicht gültig für den Strom ist
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);
}
}
ich diesen Fehler:
Cannot open package because FileMode or FileAccess value is not valid for the stream.
ich google Das Paket kann nicht geöffnet werden, da der FileMode- oder FileAccess-Wert für den Stream nicht gültig ist, aber nichts Nützliches finden kann. Irgendwelche Ideen?
PS: Anfangs habe ich den Code vereinfacht, um hier viel zu veröffentlichen. Die if-Anweisung wurde hinzugefügt, um die Bedenken von Sten Petrov zu löschen. Ich hoffe, Request.File.count> 0 seine Sorge nicht ansprechen ... ich immer noch das gleiche Problem ...
UPDATE
Als eine Arbeit um ich die Ratschläge unten gefolgt und die Datei in ein Verzeichnis speichern dann openxml ich es aus dem Verzeichnis zu lesen, verwenden
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());
}
dann WordprocessingDocument.Open
hat eine Implementierung für filepath so WordprocessingDocument.Open(path);
hoffen, dass Sie die Idee von dem, was bekomme ich tat für zukünftige Menschen, die Probleme haben.
Ich werde diese mögliche Lösung betrachten. Denn ich weiß, was Petrov empfohlen hat. – hidden