L
Logician
I am running on my PC Windows Forms to collect data from websites,
including images.
I hit a problem with images and javascript, and I would appreciate any
help.
The current code fails with a copy error. My Internet connected PC is
not the development machine, so I cannot debug on that PC and my other
PC has no Internet connection. So I cannot debug using .NET as normal.
My Code:
private string copyWebImage(string url, string TargetFile)
{
// add error handling
StringBuilder sb = new StringBuilder();
byte[] buf = new byte[8192];
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Timeout=5000;
HttpWebResponse response =
(HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader myTextReader = new StreamReader(responseStream);
char[] strBuffer = new char[25];
myTextReader.ReadBlock(strBuffer,0,25);
string stringBuffer = new string(strBuffer);
//get image name from tiff or jpg or gif or jpeg
// insert name into database
// store image on pc as standard name
if (stringBuffer.IndexOf("GIF8")>-1 ||
stringBuffer.IndexOf("JFIF")>-1)
{
// image found
//Image thisImage = Image.FromStream(responseStream);
//thisImage.Save(res
//thisImage.
//Stream ToStream = File.Create(TargetFile);
//
thisImage.Save(ToStream,System.Drawing.Imaging.ImageFormat.Gif);
//BinaryReader br = new BinaryReader(responseStream);
byte[] b;
using (BinaryReader br = new BinaryReader(responseStream))
{
b= br.ReadBytes((int)responseStream.Length);
br.Close();
}
FileStream fs= new FileStream(TargetFile,FileMode.Create);
BinaryWriter w = new BinaryWriter(fs);
w.Write(b);
// BinaryWriter bw = new BinaryWriter(ToStream);
// bw.Write(br.ReadBytes((int)responseStream.Length));
// bw.Flush();
// bw.Close();
//ToStream.Close();
// br.Close();
}
else
{
// this is a text page
}
}
catch (WebException e)
{
return "image copy failed error "+e.ToString();
}
catch (Exception e)
{
return "image copy failed error "+e.ToString();
}
return "";
}
including images.
I hit a problem with images and javascript, and I would appreciate any
help.
The current code fails with a copy error. My Internet connected PC is
not the development machine, so I cannot debug on that PC and my other
PC has no Internet connection. So I cannot debug using .NET as normal.
My Code:
private string copyWebImage(string url, string TargetFile)
{
// add error handling
StringBuilder sb = new StringBuilder();
byte[] buf = new byte[8192];
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Timeout=5000;
HttpWebResponse response =
(HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader myTextReader = new StreamReader(responseStream);
char[] strBuffer = new char[25];
myTextReader.ReadBlock(strBuffer,0,25);
string stringBuffer = new string(strBuffer);
//get image name from tiff or jpg or gif or jpeg
// insert name into database
// store image on pc as standard name
if (stringBuffer.IndexOf("GIF8")>-1 ||
stringBuffer.IndexOf("JFIF")>-1)
{
// image found
//Image thisImage = Image.FromStream(responseStream);
//thisImage.Save(res
//thisImage.
//Stream ToStream = File.Create(TargetFile);
//
thisImage.Save(ToStream,System.Drawing.Imaging.ImageFormat.Gif);
//BinaryReader br = new BinaryReader(responseStream);
byte[] b;
using (BinaryReader br = new BinaryReader(responseStream))
{
b= br.ReadBytes((int)responseStream.Length);
br.Close();
}
FileStream fs= new FileStream(TargetFile,FileMode.Create);
BinaryWriter w = new BinaryWriter(fs);
w.Write(b);
// BinaryWriter bw = new BinaryWriter(ToStream);
// bw.Write(br.ReadBytes((int)responseStream.Length));
// bw.Flush();
// bw.Close();
//ToStream.Close();
// br.Close();
}
else
{
// this is a text page
}
}
catch (WebException e)
{
return "image copy failed error "+e.ToString();
}
catch (Exception e)
{
return "image copy failed error "+e.ToString();
}
return "";
}