Ich habe eine docx-Datei, die ich zurückgeben möchte, nachdem ich Änderungen vorgenommen habe. Ich habe den folgenden Code ...
%Vor%Die Datei scheint in Ordnung zu sein, aber ich erhalte Fehlermeldungen ("Die Datei ist beschädigt" und eine andere besagt "Word hat nicht lesbaren Inhalt gefunden. Wenn Sie der Quelle vertrauen, klicken Sie auf Ja"). Irgendwelche Ideen?
Vielen Dank im Voraus
BEARBEITEN
Dies ist die ChangeFile in meinem Modell ...
%Vor% Verwenden Sie nicht MemoryStream.GetBuffer().ToArray()
use MemoryStream.ToArray()
.
Der Grund dafür ist, dass sich GetBuffer()
auf das Array bezieht, das zum Erstellen des Speicherstroms verwendet wurde, und nicht auf die tatsächlichen Daten im Speicherstream. Das darunterliegende Array könnte tatsächlich in der Größe variieren.
Versteckt auf MSDN:
Beachten Sie, dass der Puffer zugeordnete Bytes enthält, die möglicherweise nicht verwendet werden. Zum Beispiel, wenn die Zeichenfolge "test" in den MemoryStream geschrieben wird Objekt, die Länge des von GetBuffer zurückgegebenen Puffers ist 256, nicht 4, mit 252 Bytes unbenutzt. Um nur die Daten im Puffer zu erhalten, verwenden Sie die ToArray-Methode; ToArray erstellt jedoch eine Kopie der Daten in Speicher.
Tags und Links asp.net-mvc asp.net-mvc-3 c# file-upload docx