Hente remote fil med WebRequest og send den til Klient
Jeg er istand til at hente websider og vise dem korrekt på en portal side.nu vil jeg så igang med at hente filer remote, og sende disse til klienten - det hele igennem portalen.
Jeg opretter et WeRequest objekt som henter filen:
// C# - Hent fil
WebRequest objWebRequest = WebRequest.Create(objURI);
WebResponse objWebResponse = objWebRequest.GetResponse();
Stream objStream = objWebResponse.GetResponseStream();
StreamReader objStreamReader = new StreamReader(objStream);
if (objWebResponse.ContentType.Contains("text/"))
{
...
}
else //file
{
Stream ResponseReader = objWebResponse.GetResponseStream();
gadget.BinaryFile = new byte[(int)objWebResponse.ContentLength]; //Clear'n'Prepare buffer
ResponseReader.Read(gadget.BinaryFile, 0, (int)objWebResponse.ContentLength);
gadget.FileContentType = objWebResponse.ContentType;
gadget.FileName = (new Uri(strURI).Segments)[(new Uri(strURI).Segments).Length - 1];
}
Herefter vil jeg i Page_Load sende filen til brugeren:
//C# -- Send fil
Response.Clear();
Response.AddHeader("Content-Disposition", "filename=" + GadgetList[GadgetList.HasFile()].FileName);
Response.AddHeader("Content-Length", GadgetList[GadgetList.HasFile()].BinaryFile.Length.ToString());
Response.ContentType = GadgetList[GadgetList.HasFile()].FileContentType;
Response.BinaryWrite(GadgetList[GadgetList.HasFile()].BinaryFile);
Response.End();
------
GadgetList er en Indexer af Gadgets, som kan hente en Gadget ud af en List.
en Gadget indeholder bl.a. de public properties:
string FileName,
char[] BinaryFile og
string ContentType
som er hhv. min buffer og dennes egenskaber.
Mit problem er at filen kun er fyldt med data i staten, resten er 0x00'er dvs. de første cirka 50 KB indeholder data...
hvad gør jeg galt =