i have a view where i put the id of the event then i can download all the images for that event..... here\'s my code
[HttpPost]
public ActionResult Index
In MVC, rather than returning a view, if you want to return a file, you can return this as an ActionResult
by doing:
return File(zipFile.GetBytes(), "application/zip", downloadFileName);
// OR
return File(zipFile.GetStream(), "application/zip", downloadFileName);
Don't mess about with manually writing to the output stream if you're using MVC.
I'm not sure if you can get the bytes or the stream from the ZipFile
class though. Alternatively, you might want it to write it's output to a MemoryStream
and then return that:
var cd = new System.Net.Mime.ContentDisposition {
FileName = downloadFileName,
Inline = false,
};
Response.AppendHeader("Content-Disposition", cd.ToString());
var memStream = new MemoryStream();
zipFile.Save(memStream);
memStream.Position = 0; // Else it will try to read starting at the end
return File(memStream, "application/zip");
And by using this, you can remove all lines in which you are doing anything with the Response
. No need to Clear
or AddHeader
.