Tôi đang sử dụng DotNetZip để tạo một tệp zip và chuyển nó vào một FileResult. Mở gỡ lỗi, tôi có thể xác minh rằng các MemoryStream chứa một tập tin, nhưng khi tôi chạy nó thông qua FileStreamResult, nó sẽ trả 0bytes:Sử dụng MemoryStream với FileStreamResult có thể?
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;
}
Một lần nữa, tôi có thể xác minh dòng đó không phải là trống rỗng, nhưng điều này sẽ luôn trả lại hồ sơ hey.zip
dưới dạng 0byte. Tôi phải sử dụng MemoryStream
sai ở đây? Hoặc FileStreamResult
có làm điều gì đó mà tôi không mong đợi? Tôi đã sử dụng FileStreamResult
trước đây, nhưng không sử dụng với MemoryStream
.
+1 cho câu đầu tiên, -1 cho câu thứ hai vì anh ta đã thấy nó không trống trong trình gỡ lỗi. –
@ Joel: Đoán tôi đã bỏ lỡ điều đó. –
không biggie, tôi đã trao cho bạn phiếu bầu bổ sung –