图片上传(加水印、缩略图、远程保存)的简单例子
图片上传(加水印、缩略图、远程保存)的简单例子(应用于51aspx.com)
该源码下载地址:http://51aspx.com/CV/ImageUpload
今天看到xiongeee发的文章使用使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图  
觉得再加一个远程图片自动保存的功能可能就更实用了,在网上找了好多,都不完整,就自己写了一个
 就写了一个测试,实现了以下功能
很实用的一个图片上传得例子
图片上传:生成缩略图 加文字水印 图片水印
51aspx.png为水印图片
远程图片抓取(保存到本地)支持jpg、gif、bmp、png
图片抓取后自动以Auto+日期+原名称命名
输入远程图片地址(支持Html)
这里仅仅贴出远程保存部分代码,其他部分请下载附件看好了,是一个完整的小例子,可能很多人觉得很菜,但是我觉得对大部分人还是有帮助的,也希望大家多多批评指点
 1 //自动保存远程图片
//自动保存远程图片
2
3 WebClient client = new WebClient();
                WebClient client = new WebClient();
4 //备用Reg:<img.*?src=([\"\'])(http:\/\/.+\.(jpg|gif|bmp|bnp))\1.*?>
                //备用Reg:<img.*?src=([\"\'])(http:\/\/.+\.(jpg|gif|bmp|bnp))\1.*?>
5 Regex reg = new Regex("IMG[^>]*?src\\s*=\\s*(?:\"(?<1>[^\"]*)\"|'(?<1>[^\']*)')", RegexOptions.IgnoreCase);
                Regex reg = new Regex("IMG[^>]*?src\\s*=\\s*(?:\"(?<1>[^\"]*)\"|'(?<1>[^\']*)')", RegexOptions.IgnoreCase);
6 MatchCollection m = reg.Matches(TextBox1.Text);
                MatchCollection m = reg.Matches(TextBox1.Text);
7
8 foreach (Match math in m)
                foreach (Match math in m)
9 {
                {
10 string imgUrl = math.Groups[1].Value;
                    string imgUrl = math.Groups[1].Value;
11 //在原图片名称前加YYMMDD重名名并上传
                    //在原图片名称前加YYMMDD重名名并上传
12 Regex regName = new Regex(@"\w+.(?:jpg|gif|bmp|png)", RegexOptions.IgnoreCase);
                    Regex regName = new Regex(@"\w+.(?:jpg|gif|bmp|png)", RegexOptions.IgnoreCase);
13
14 string strNewImgName = DateTime.Now.ToShortDateString().Replace("-", "") + regName.Match(imgUrl).ToString();
                    string strNewImgName = DateTime.Now.ToShortDateString().Replace("-", "") + regName.Match(imgUrl).ToString();
15
16 try
                    try
17 {
                    {
18 //保存图片
                        //保存图片
19 client.DownloadFile(imgUrl, Server.MapPath("ImgUpload/Auto/" + strNewImgName));
                        client.DownloadFile(imgUrl, Server.MapPath("ImgUpload/Auto/" + strNewImgName));
20
21 }
                    }
22 catch
                    catch
23 {
                    {
24 }
                    }
25 finally
                    finally
26 {
                    {
27
28 }
                    }
29
30 client.Dispose();
                client.Dispose();
31 }
            }
32
33
 //自动保存远程图片
//自动保存远程图片2

3
 WebClient client = new WebClient();
                WebClient client = new WebClient();4
 //备用Reg:<img.*?src=([\"\'])(http:\/\/.+\.(jpg|gif|bmp|bnp))\1.*?>
                //备用Reg:<img.*?src=([\"\'])(http:\/\/.+\.(jpg|gif|bmp|bnp))\1.*?>5
 Regex reg = new Regex("IMG[^>]*?src\\s*=\\s*(?:\"(?<1>[^\"]*)\"|'(?<1>[^\']*)')", RegexOptions.IgnoreCase);
                Regex reg = new Regex("IMG[^>]*?src\\s*=\\s*(?:\"(?<1>[^\"]*)\"|'(?<1>[^\']*)')", RegexOptions.IgnoreCase);6
 MatchCollection m = reg.Matches(TextBox1.Text);
                MatchCollection m = reg.Matches(TextBox1.Text);7

8
 foreach (Match math in m)
                foreach (Match math in m)9
 {
                {10
 string imgUrl = math.Groups[1].Value;
                    string imgUrl = math.Groups[1].Value;11
 //在原图片名称前加YYMMDD重名名并上传
                    //在原图片名称前加YYMMDD重名名并上传12
 Regex regName = new Regex(@"\w+.(?:jpg|gif|bmp|png)", RegexOptions.IgnoreCase);
                    Regex regName = new Regex(@"\w+.(?:jpg|gif|bmp|png)", RegexOptions.IgnoreCase);13

14
 string strNewImgName = DateTime.Now.ToShortDateString().Replace("-", "") + regName.Match(imgUrl).ToString();
                    string strNewImgName = DateTime.Now.ToShortDateString().Replace("-", "") + regName.Match(imgUrl).ToString();15

16
 try
                    try17
 {
                    {18
 //保存图片
                        //保存图片19
 client.DownloadFile(imgUrl, Server.MapPath("ImgUpload/Auto/" + strNewImgName));
                        client.DownloadFile(imgUrl, Server.MapPath("ImgUpload/Auto/" + strNewImgName));20

21
 }
                    }22
 catch
                    catch23
 {
                    {24
 }
                    }25
 finally
                    finally26
 {
                    {27

28
 }
                    }29

30
 client.Dispose();
                client.Dispose();31
 }
            }32

33

    liudao-MVP
 
                    
                
 
                
 
                     
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号