我用
mybyte = my.DownloadData(new Uri(Url));
my.DownloadFileAsync(new Uri(Url));
抓取远程图片到本地.当抓取页面被一个人访问时,一切正常.但是如果有多个人同时访问这个页面时.会造成图片在服务器上反复读写.明明快抓取完了,但是还是会重新从0字节抓取..要怎么解决呢?
mybyte = my.DownloadData(new Uri(Url));
my.DownloadFileAsync(new Uri(Url));
抓取远程图片到本地.当抓取页面被一个人访问时,一切正常.但是如果有多个人同时访问这个页面时.会造成图片在服务器上反复读写.明明快抓取完了,但是还是会重新从0字节抓取..要怎么解决呢?
解决方案 »
- 有关于动态生成repeater控件以及绑定数据的处理问题
- 问一个关于url rewrite的效率速度问题
- 同一条sql语句在两个数据库执行一个正常一个超时怎么回事?
- 在asp.net中,如何设置SelectedNode的值,高手帮忙
- CHECKBOXLIST 取值問題---馬上結帖
- 又一个连接问题....
- 公司里负责管理程序员代码质量的人叫什么?
- 关于从数据库提取图片显示的问题!急急
- aspx页面怎么引用ASP
- 各位高手,webform1.aspx在“生成预览”时出现“HTTP 500 - 内部服务器错误 ”,什么原因?急盼!
- wpf 求助
- 在ASP.NET中如何防止页面重定向到自身页面数据文本框数据丢失?
using System.Net;
Pic_Remote("<img src=http://static.tianya.cn/w250/images/20081206/6262712/1228548462160.jpg>") //远程存图
private string Pic_Remote(string news_Content)
{
string htmlStr = news_Content;
string nowyymm = DateTime.Now.ToString("yyyy-MM"); //当前年月
string nowdd = DateTime.Now.ToString("dd"); //当天号数
string path = "images/" + nowyymm + "/" + nowdd;
Directory.CreateDirectory(Server.MapPath(path));
string returnValue = "";
returnValue = SaveUrlPics(htmlStr, path, nowyymm, nowdd);
return returnValue;
} //下载图片到本地
public string SaveUrlPics(string strHTML, string path, string nowyymm, string nowdd)
{
string[] imgurlAry = GetImgTag(strHTML);
try
{
for (int i = 0; i < imgurlAry.Length; i++)
{
//WebRequest req = WebRequest.Create(imgurlAry[i]);
string preStr = System.DateTime.Now.ToString() + "_";
preStr = preStr.Replace("-", "");
preStr = preStr.Replace(":", "");
preStr = preStr.Replace(" ", "");
WebClient wc = new WebClient();
wc.DownloadFile(imgurlAry[i], Server.MapPath(path) + "/" + preStr + imgurlAry[i].Substring(imgurlAry[i].LastIndexOf("/") + 1));
//替换原图片地址
string imgPath = "/Files/Remoteupfile/" + nowyymm + "/" + nowdd;
strHTML = strHTML.Replace(imgurlAry[i], imgPath + "/" + preStr + imgurlAry[i].Substring(imgurlAry[i].LastIndexOf("/") + 1));
}
}
catch (Exception ex)
{
//return ex.Message;
}
return strHTML;
} //获取图片标志
private string[] GetImgTag(string htmlStr)
{
Regex regObj = new Regex("<img.+?>", RegexOptions.Compiled | RegexOptions.IgnoreCase);
string[] strAry = new string[regObj.Matches(htmlStr).Count];
int i = 0;
foreach (Match matchItem in regObj.Matches(htmlStr))
{
strAry[i] = GetImgUrl(matchItem.Value);
i++;
}
return strAry;
} //获取图片URL地址
private string GetImgUrl(string imgTagStr)
{
string str = "";
Regex regObj = new Regex("http://.+.(?:jpg|gif|bmp|png)", RegexOptions.Compiled | RegexOptions.IgnoreCase);
foreach (Match matchItem in regObj.Matches(imgTagStr))
{
str = matchItem.Value;
}
return str;
}
{
直接显示
}
else
{
if(抓取的网址在Application变量中不存在)
{
将网址存到Application变量
开始抓取
}
}