Ich verwende DotNetZip, um eine Zip-Datei zu erstellen und sie an ein FileResult zu übergeben. Auf debug, kann ich überprüfen, ob die Memory eine Datei enthält, aber wenn ich es durch Filestreamresult laufen, es gibt 0Bytes:Verwendung eines MemoryStreams mit FileStreamResult möglich?
public FileResult GetZipFiles(int documentId) {
var file = fileRepository.Get(documentId);
var zip = new ZipFile();
var stream = new MemoryStream();
var filePath = Path.Combine(UploadsFolder, Path.GetFileName(file.Id));
zip.AddFile(filePath);
zip.Save(stream);
var result = new FileStreamResult(stream, "application/zip")
{ FileDownloadName = "hey.zip" };
return result;
}
Auch hier kann ich sicherstellen, dass Strom nicht leer ist, aber das wird immer wieder zurückkehren, die Datei hey.zip
als 0bytes. Ich muss MemoryStream
falsch hier verwenden? Oder FileStreamResult
tut etwas, was ich nicht erwarte es zu tun? Ich habe FileStreamResult
vorher verwendet, aber nicht mit MemoryStream
.
+1 für den ersten Satz, -1 für die zweite, weil er bereits gesehen hat, ist es nicht im Debugger leer. –
@Joel: Ich denke, ich habe das verpasst. –
kein biggie, ich gab dir trotzdem die plus vote –