|  | 
| Sitecore Media Item Download | 
One of my friend struggling for downloading PDF file from Sitecore media library on client browser
. So I thought to write a code on the same.
Below code can force any media library item to be
downloaded on client browser.
private void DownloadMediaLibraryItem()
{
    //Get
Media Item
    var mediaItem = Sitecore.Data.Database.GetDatabase("master").GetItem(new ID("{5D8B8B5B-BD43-4F8E-B1B5-EACA7D78F0DE}"));
    var media = Sitecore.Resources.Media.MediaManager.GetMedia(mediaItem);
    //Get
Media Stream in buffer
    var mediaStream = media.GetStream();
    byte[] buffer = new byte[(int)mediaStream.Length];
    mediaStream.Stream.Read(buffer, 0, (int)mediaStream.Length);
    //Send
response to browser
    System.Web.HttpContext.Current.Response.Clear();
    System.Web.HttpContext.Current.Response.ClearContent();
    System.Web.HttpContext.Current.Response.ClearHeaders();
    System.Web.HttpContext.Current.Response.ContentType = "application/octet-stream";
    System.Web.HttpContext.Current.Response.AddHeader("Content-Length", buffer.Length.ToString());
    System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + mediaItem.Name + ".pdf");
    System.Web.HttpContext.Current.Response.BinaryWrite(buffer);
    System.Web.HttpContext.Current.Response.Flush();
    System.Web.HttpContext.Current.Response.End();
}
I hope you like this Sitecore article. Stay tuned for
more Sitecore related articles.
Till that happy Sitecoring
:)
 Please leave your comments or share this code if it’s useful for you.
 
 
 
I am getting this error: "OutputStream is not available when a custom TextWriter is used."
ReplyDeletewhen executing this line:
System.Web.HttpContext.Current.Response.BinaryWrite(buffer);