Download file directly to memory

daved picture daved · Oct 30, 2013 · Viewed 57.6k times · Source

I would like to load an excel file directly from an ftp site into a memory stream. Then I want to open the file in the FarPoint Spread control using the OpenExcel(Stream) method. My issue is I'm not sure if it's possible to download a file directly into memory. Anyone know if this is possible?

Answer

Attila picture Attila · Oct 30, 2013

Yes, you can download a file from FTP to memory.

I think you can even pass the Stream from the FTP server to be processed by FarPoint.

WebRequest request = FtpWebRequest.Create("ftp://asd.com/file");

using (WebResponse response = request.GetResponse())
{
    Stream responseStream = response.GetResponseStream();
    OpenExcel(responseStream);
}

Using WebClient you can do nearly the same. Generally using WebClient is easier but gives you less configuration options and control (eg.: No timeout setting).

WebClient wc = new WebClient();
using (MemoryStream stream = new MemoryStream(wc.DownloadData("ftp://asd.com/file")))
{
    OpenExcel(stream);
}