Il flusso proviene da un form HTML tramite la tecnologia AJAX var jqXHR = data.submit();
OpenXml Can pacchetto non apre perché FileMode o FileAccess valore non è valido per il flusso
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);
}
}
ottengo questo errore:
Cannot open package because FileMode or FileAccess value is not valid for the stream.
I google Impossibile aprire il pacchetto perché il valore FileMode o FileAccess non è valido per lo stream ma non riesce a trovare nulla di utile. Qualche idea?
PS: Inizialmente ho semplificato il codice da pubblicare qui molto. Aggiunta la dichiarazione if in modo che cancellasse la preoccupazione di Sten Petrov. Spero Request.File.count> 0 non affrontare la sua preoccupazione ... ho ancora lo stesso problema ...
UPDATE
Per ovviare ho seguito i consigli di seguito e salvare il file in una directory allora io uso OpenXML a leggere dalla directory
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());
}
poi WordprocessingDocument.Open
dispone di un'implementazione per percorsofile così WordprocessingDocument.Open(path);
auguro che si ottiene l'idea di quello che ho fatto per le persone che hanno problemi futuri.
Mi occuperò di questa possibile soluzione. Per sapere ho fatto ciò che Petrov ha raccomandato. – hidden