.:: Downloading a remote file to a MemoryStream using C# (CSharp) ::.
A MemoryStream is my preferred method of passing around file data throughout my .Net applications. The following code details a simple way to download a file and place it in the memory stream.
Situation:
Download a PDF from a remote location and store data in a MemoryStream. The MemoryStream needs will be accessed multiple times in a single instance from other OO objects.
Underlying Technology:
Microsoft .Net FCL (Framework Class Library)
The Code:The following code is deigned for use in a class file that is a part of an object oriented architecture.
// Sample Url, Watch for Line Breaks
static string pdfUrl =
@"http://download.microsoft.com/download/c/a/9/
ca927411-504e-498a-ad2e-490ca4d9cd27/Journal_4_web.pdf";
// Member variable to store the MemoryStream Data
private MemoryStream pdfMemoryStream;
// Public MemoryStream property containing PDF Data
public MemoryStream PdfMemoryStream
{
get
{
// Check to see if the MemoryStream has already been created,
// if not, then create memory stream
if (this.pdfMemoryStream == null)
{
WebClient client = new WebClient();
try
{
this.pdfMemoryStream =
new MemoryStream(client.DownloadData(pdfUrl));
}
finally
{
client.Dispose();
}
}
return this.pdfMemoryStream;
}
}