GetImage.aspx
<%
...
@ Page Language="C#" AutoEventWireup="true" CodeFile="GetImage.aspx.cs" Inherits="GetImage"
%>
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > Get image path </ title >
< script type ="text/javascript" > ...
function ChangeModel(radio)
...{
if(radio.id == "RadioUrl")
...{
document.getElementById('trUrl').style.display = "block";
document.getElementById('trHtml').style.display = "none";
document.getElementById('tbIsUrl').value = "true";
}
if(radio.id == "RadioHtml")
...{
document.getElementById('trUrl').style.display = "none";
document.getElementById('trHtml').style.display = "block";
document.getElementById('tbIsUrl').value = "";
}
}
//Maintain the "model" when postback
window.onload = function()
...{
if(document.getElementById('tbIsUrl').value != "")
...{
document.getElementById('RadioUrl').checked = true;
document.getElementById('trUrl').style.display = "block";
document.getElementById('trHtml').style.display = "none";
}
if(document.getElementById('tdPathList').innerHTML==" ")
...{
document.getElementById('trPathListTitle').style.display = "none";
document.getElementById('trPathListContent').style.display = "none";
}
}
function FillTextFromClipboard(textbox)
...{
textbox.value=""; //clear Old
if(document.getElementById('CheckboxIsFromClip').checked)
...{
textbox.value = window.clipboardData.getData('text');
}
}
function GetList()
...{
var saveList=document.getElementsByName('isSave');
for(i=0;i<saveList.length;i++)
...{
if(saveList[i].checked == true)
...{
document.getElementById('tbHref4Save').value += saveList[i].id;
document.getElementById('tbHref4Save').value += "+";
}
}
document.getElementById('bnExeSave').click();
}
</ script >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< table width ="80%" border ="1" >
< tr >
< td >
Model:
</ td >
< td style ="width:80%" >
< input id ="RadioUrl" type ="radio" name ="radioMode" onclick ="ChangeModel(this)" value ="URL" runat ="server" />< strong > From URL </ strong >
< input id ="RadioHtml" type ="radio" name ="radioMode" onclick ="ChangeModel(this)" checked ="checked" />< strong > From HTML </ strong >
< input id ="CheckboxIsFromClip" type ="checkbox" />< strong > From ClipBoard </ strong >
< asp:CheckBox ID ="cbIsThumb" runat ="server" EnableViewState ="False" Style ="position: relative"
Text ="IsThumb" /></ td >
</ tr >
< tr id ="trUrl" style ="display:none" runat ="server" >
< td >
URL:
</ td >
< td >
< asp:TextBox runat ="server" ID ="tbUrl" Width ="90%" onfocus ="FillTextFromClipboard(this)" ></ asp:TextBox >
</ td >
</ tr >
< tr id ="trHtml" >
< td valign ="top" align ="justify" >
Html source:
</ td >
< td >
< asp:TextBox ID ="tbHtmlSource" runat ="server" TextMode ="MultiLine" Width ="100%" Height ="300px" onfocus ="FillTextFromClipboard(this)" ></ asp:TextBox >
</ td >
</ tr >
< tr >
< td >
Type:
</ td >
< td >
< input id ="RadioJpg" type ="radio" name ="imageTypes" runat ="server" checked ="true" />< strong > Jpg </ strong >
< input id ="RadioBmp" type ="radio" name ="imageTypes" runat ="server" />< strong > Bmp </ strong >
< input id ="RadioGif" type ="radio" name ="imageTypes" runat ="server" />< strong > Gif </ strong >
</ td >
</ tr >
< tr >
< td colspan ="2" align ="center" >
< asp:Button ID ="bnGetPathList" runat ="server" Text ="Get" OnClick ="bnGetPathList_Click" /></ td >
</ tr >
< tr id ="trPathListTitle" >
< td valign ="top" align ="justify" >
Image path list:
</ td >
< td runat ="server" id ="tdPathList" >
</ td >
</ tr >
< tr id ="trPathListContent" >
< td colspan ="2" align ="center" >
< input type ="button" id ="bnSave" value ="Save your checked" onclick ="GetList()" />
</ td >
</ tr >
</ table >
</ div >
< input id ="tbIsUrl" type ="text" runat ="server" style ="visibility:hidden" />
< input id ="tbHref4Save" type ="text" runat ="server" style ="visibility:hidden" />
< asp:Button ID ="bnExeSave" runat ="server" OnClick ="bnExeSave_Click" Style ="visibility:hidden" Text ="Save" />
</ form >
</ body >
</ html >
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > Get image path </ title >
< script type ="text/javascript" > ...
function ChangeModel(radio)
...{
if(radio.id == "RadioUrl")
...{
document.getElementById('trUrl').style.display = "block";
document.getElementById('trHtml').style.display = "none";
document.getElementById('tbIsUrl').value = "true";
}
if(radio.id == "RadioHtml")
...{
document.getElementById('trUrl').style.display = "none";
document.getElementById('trHtml').style.display = "block";
document.getElementById('tbIsUrl').value = "";
}
}
//Maintain the "model" when postback
window.onload = function()
...{
if(document.getElementById('tbIsUrl').value != "")
...{
document.getElementById('RadioUrl').checked = true;
document.getElementById('trUrl').style.display = "block";
document.getElementById('trHtml').style.display = "none";
}
if(document.getElementById('tdPathList').innerHTML==" ")
...{
document.getElementById('trPathListTitle').style.display = "none";
document.getElementById('trPathListContent').style.display = "none";
}
}
function FillTextFromClipboard(textbox)
...{
textbox.value=""; //clear Old
if(document.getElementById('CheckboxIsFromClip').checked)
...{
textbox.value = window.clipboardData.getData('text');
}
}
function GetList()
...{
var saveList=document.getElementsByName('isSave');
for(i=0;i<saveList.length;i++)
...{
if(saveList[i].checked == true)
...{
document.getElementById('tbHref4Save').value += saveList[i].id;
document.getElementById('tbHref4Save').value += "+";
}
}
document.getElementById('bnExeSave').click();
}
</ script >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< table width ="80%" border ="1" >
< tr >
< td >
Model:
</ td >
< td style ="width:80%" >
< input id ="RadioUrl" type ="radio" name ="radioMode" onclick ="ChangeModel(this)" value ="URL" runat ="server" />< strong > From URL </ strong >
< input id ="RadioHtml" type ="radio" name ="radioMode" onclick ="ChangeModel(this)" checked ="checked" />< strong > From HTML </ strong >
< input id ="CheckboxIsFromClip" type ="checkbox" />< strong > From ClipBoard </ strong >
< asp:CheckBox ID ="cbIsThumb" runat ="server" EnableViewState ="False" Style ="position: relative"
Text ="IsThumb" /></ td >
</ tr >
< tr id ="trUrl" style ="display:none" runat ="server" >
< td >
URL:
</ td >
< td >
< asp:TextBox runat ="server" ID ="tbUrl" Width ="90%" onfocus ="FillTextFromClipboard(this)" ></ asp:TextBox >
</ td >
</ tr >
< tr id ="trHtml" >
< td valign ="top" align ="justify" >
Html source:
</ td >
< td >
< asp:TextBox ID ="tbHtmlSource" runat ="server" TextMode ="MultiLine" Width ="100%" Height ="300px" onfocus ="FillTextFromClipboard(this)" ></ asp:TextBox >
</ td >
</ tr >
< tr >
< td >
Type:
</ td >
< td >
< input id ="RadioJpg" type ="radio" name ="imageTypes" runat ="server" checked ="true" />< strong > Jpg </ strong >
< input id ="RadioBmp" type ="radio" name ="imageTypes" runat ="server" />< strong > Bmp </ strong >
< input id ="RadioGif" type ="radio" name ="imageTypes" runat ="server" />< strong > Gif </ strong >
</ td >
</ tr >
< tr >
< td colspan ="2" align ="center" >
< asp:Button ID ="bnGetPathList" runat ="server" Text ="Get" OnClick ="bnGetPathList_Click" /></ td >
</ tr >
< tr id ="trPathListTitle" >
< td valign ="top" align ="justify" >
Image path list:
</ td >
< td runat ="server" id ="tdPathList" >
</ td >
</ tr >
< tr id ="trPathListContent" >
< td colspan ="2" align ="center" >
< input type ="button" id ="bnSave" value ="Save your checked" onclick ="GetList()" />
</ td >
</ tr >
</ table >
</ div >
< input id ="tbIsUrl" type ="text" runat ="server" style ="visibility:hidden" />
< input id ="tbHref4Save" type ="text" runat ="server" style ="visibility:hidden" />
< asp:Button ID ="bnExeSave" runat ="server" OnClick ="bnExeSave_Click" Style ="visibility:hidden" Text ="Save" />
</ form >
</ body >
</ html >
GetImage.aspx.cs:
using
System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text.RegularExpressions;
using System.Text;
using System.IO;
using System.Net;
public partial class GetImage : System.Web.UI.Page
... {
protected void Page_Load(object sender, EventArgs e)
...{
if (!IsPostBack)
...{
}
}
protected void bnGetPathList_Click(object sender, EventArgs e)
...{
//Get type
ImageTypes type = new ImageTypes();
if (RadioJpg.Checked)
type = ImageTypes.Jpg;
if (RadioBmp.Checked)
type = ImageTypes.Bmp;
if (RadioGif.Checked)
type = ImageTypes.Gif;
if (RadioUrl.Checked)
...{
string url = tbUrl.Text;
if (url.Trim() != string.Empty)
...{
// check "http://"
if (url.Substring(0, 4) != "http")
...{
url = "http://" + url;
}
try
...{
string htmlCode = string.Empty;
HttpWebRequest htmlCodeRequest = (HttpWebRequest)WebRequest.Create(url);
WebResponse htmlCodeResponse = htmlCodeRequest.GetResponse();
StreamReader htmlReader = new StreamReader(htmlCodeResponse.GetResponseStream());
htmlCode = htmlReader.ReadToEnd();
htmlReader.Close();
CGetImage.FillHrefToTD(htmlCode, type, tdPathList, cbIsThumb.Checked);
}
catch
...{
// do nothing
}
}
}
else // From html
...{
if (tbHtmlSource.Text.Trim() != string.Empty)
...{
CGetImage.FillHrefToTD(tbHtmlSource.Text, type, tdPathList, cbIsThumb.Checked);
}
}
}
protected void bnExeSave_Click(object sender, EventArgs e)
...{
string[] hrefs = tbHref4Save.Value.Trim().Split('+');
// DirectoryInfo dirInfo = new DirectoryInfo(Server.MapPath("images"));
for (int imageCounter = 0; imageCounter < hrefs.Length; imageCounter++)
...{
if (hrefs[imageCounter].Trim() == string.Empty)
...{
continue;
}
try
...{
string imageName = hrefs[imageCounter].Substring(hrefs[imageCounter].LastIndexOf('/') + 1);
WebClient wc = new WebClient();
string savePath = Server.MapPath("images/" + imageName);
//string savePath = newDir + imageName;
string url = hrefs[imageCounter];
if (url.Substring(0, 1) == "/")
url = tbUrl.Text + url;
if (url.Substring(0, 4) != "http")
...{
url = "http://" + url;
}
wc.DownloadFile(url, savePath);
}
catch(Exception ex)
...{
Response.Write(ex.Message);
}
}
}
}
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text.RegularExpressions;
using System.Text;
using System.IO;
using System.Net;
public partial class GetImage : System.Web.UI.Page
... {
protected void Page_Load(object sender, EventArgs e)
...{
if (!IsPostBack)
...{
}
}
protected void bnGetPathList_Click(object sender, EventArgs e)
...{
//Get type
ImageTypes type = new ImageTypes();
if (RadioJpg.Checked)
type = ImageTypes.Jpg;
if (RadioBmp.Checked)
type = ImageTypes.Bmp;
if (RadioGif.Checked)
type = ImageTypes.Gif;
if (RadioUrl.Checked)
...{
string url = tbUrl.Text;
if (url.Trim() != string.Empty)
...{
// check "http://"
if (url.Substring(0, 4) != "http")
...{
url = "http://" + url;
}
try
...{
string htmlCode = string.Empty;
HttpWebRequest htmlCodeRequest = (HttpWebRequest)WebRequest.Create(url);
WebResponse htmlCodeResponse = htmlCodeRequest.GetResponse();
StreamReader htmlReader = new StreamReader(htmlCodeResponse.GetResponseStream());
htmlCode = htmlReader.ReadToEnd();
htmlReader.Close();
CGetImage.FillHrefToTD(htmlCode, type, tdPathList, cbIsThumb.Checked);
}
catch
...{
// do nothing
}
}
}
else // From html
...{
if (tbHtmlSource.Text.Trim() != string.Empty)
...{
CGetImage.FillHrefToTD(tbHtmlSource.Text, type, tdPathList, cbIsThumb.Checked);
}
}
}
protected void bnExeSave_Click(object sender, EventArgs e)
...{
string[] hrefs = tbHref4Save.Value.Trim().Split('+');
// DirectoryInfo dirInfo = new DirectoryInfo(Server.MapPath("images"));
for (int imageCounter = 0; imageCounter < hrefs.Length; imageCounter++)
...{
if (hrefs[imageCounter].Trim() == string.Empty)
...{
continue;
}
try
...{
string imageName = hrefs[imageCounter].Substring(hrefs[imageCounter].LastIndexOf('/') + 1);
WebClient wc = new WebClient();
string savePath = Server.MapPath("images/" + imageName);
//string savePath = newDir + imageName;
string url = hrefs[imageCounter];
if (url.Substring(0, 1) == "/")
url = tbUrl.Text + url;
if (url.Substring(0, 4) != "http")
...{
url = "http://" + url;
}
wc.DownloadFile(url, savePath);
}
catch(Exception ex)
...{
Response.Write(ex.Message);
}
}
}
}
App_code/CGetImage.cs
using
System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
using System.IO;
using System.Net;
using System.Text.RegularExpressions;
/**/ /// <summary>
/// Summary description for CGetImage
/// </summary>
public class CGetImage
... {
public CGetImage()
...{
//
// TODO: Add constructor logic here
//
}
/**//// <summary>
/// Fill href to the "result cell"
/// </summary>
/// <param name="sourceHtml">html code</param>
/// <param name="imageType">image type</param>
/// <param name="toTD">Cell</param>
public static void FillHrefToTD(string sourceHtml, ImageTypes imageType,HtmlTableCell toTD,bool isThumb)
...{
toTD.InnerHtml = string.Empty;
string regStr = string.Empty;
switch (imageType)
...{
case ImageTypes.Jpg:
regStr = @"http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?.jpg";
break;
case ImageTypes.Bmp:
regStr = @"http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?.bmp";
break;
case ImageTypes.Gif:
regStr = @"http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?.gif";
break;
}
Regex re = new Regex(regStr, RegexOptions.IgnoreCase | RegexOptions.Multiline);
MatchCollection mc = re.Matches(sourceHtml);
HtmlTable tableImageList = new HtmlTable();
foreach (Match ma in mc)
...{
try
...{
string imageName = ma.Value.Substring(ma.Value.LastIndexOf("/") + 1);
string imageLinker = string.Empty;
if (isThumb)
imageLinker = "<img width='80px' src="" + ma.Value + "">";
else
imageLinker = "<a href="" + ma.Value + "">" + ma.Value + "</a>";
HtmlTableRow htr = new HtmlTableRow();
HtmlTableCell htcImage = new HtmlTableCell();
htcImage.InnerHtml = imageLinker;
HtmlTableCell htcCheckBox = new HtmlTableCell();
htcCheckBox.InnerHtml = "<input type='checkbox' name='isSave' checked='true' id='" + ma.Value + "'></input>";
htr.Cells.Add(htcImage);
htr.Cells.Add(htcCheckBox);
tableImageList.Rows.Add(htr);
}
catch
...{
}
}// end foreach
toTD.Controls.Add(tableImageList);
}
}
/**/ /// <summary>
/// Image Types
/// </summary>
public enum ImageTypes
... {
Jpg,
Bmp,
Gif,
}
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
using System.IO;
using System.Net;
using System.Text.RegularExpressions;
/**/ /// <summary>
/// Summary description for CGetImage
/// </summary>
public class CGetImage
... {
public CGetImage()
...{
//
// TODO: Add constructor logic here
//
}
/**//// <summary>
/// Fill href to the "result cell"
/// </summary>
/// <param name="sourceHtml">html code</param>
/// <param name="imageType">image type</param>
/// <param name="toTD">Cell</param>
public static void FillHrefToTD(string sourceHtml, ImageTypes imageType,HtmlTableCell toTD,bool isThumb)
...{
toTD.InnerHtml = string.Empty;
string regStr = string.Empty;
switch (imageType)
...{
case ImageTypes.Jpg:
regStr = @"http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?.jpg";
break;
case ImageTypes.Bmp:
regStr = @"http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?.bmp";
break;
case ImageTypes.Gif:
regStr = @"http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?.gif";
break;
}
Regex re = new Regex(regStr, RegexOptions.IgnoreCase | RegexOptions.Multiline);
MatchCollection mc = re.Matches(sourceHtml);
HtmlTable tableImageList = new HtmlTable();
foreach (Match ma in mc)
...{
try
...{
string imageName = ma.Value.Substring(ma.Value.LastIndexOf("/") + 1);
string imageLinker = string.Empty;
if (isThumb)
imageLinker = "<img width='80px' src="" + ma.Value + "">";
else
imageLinker = "<a href="" + ma.Value + "">" + ma.Value + "</a>";
HtmlTableRow htr = new HtmlTableRow();
HtmlTableCell htcImage = new HtmlTableCell();
htcImage.InnerHtml = imageLinker;
HtmlTableCell htcCheckBox = new HtmlTableCell();
htcCheckBox.InnerHtml = "<input type='checkbox' name='isSave' checked='true' id='" + ma.Value + "'></input>";
htr.Cells.Add(htcImage);
htr.Cells.Add(htcCheckBox);
tableImageList.Rows.Add(htr);
}
catch
...{
}
}// end foreach
toTD.Controls.Add(tableImageList);
}
}
/**/ /// <summary>
/// Image Types
/// </summary>
public enum ImageTypes
... {
Jpg,
Bmp,
Gif,
}