版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 自定义控件实现无刷新上传图片,立即显示缩略图,保存图片缩略图自定义控件实现无刷新上传图片,立即显示缩略图,保存图片缩略图如图:点击浏览,选择图片之后,右面显示图片 第一步:创建CtFileUpLoad.ascx复制代码 代码如下: iframe src=/WebParts/FileUpLoad.aspx? width=240px height=22px frameborder=0 scrolling=no function CallLoaded() ; 复制代码 代码如下:using System; using System.Collections; using System.Configu
2、ration; using System.Data; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Drawing; public partial class WebParts_CtFileUpLoad : System.Web.UI.UserControl publi
3、c bool AutoFileName get object ob = ViewStateClientID + AutoFileName; if (ob = null) ob = true; return (bool)ob; set ViewStateClientID + AutoFileName = value; public string UpLoadPath get object ob = ViewStateClientID + UpLoadPath; if (ob = null) ob = UPLOADFILES; return ob.ToString(); set ViewState
4、ClientID + UpLoadPath = value; public string OnLoaded get object ob = ViewStateClientID + OnLoaded; if (ob = null) ob = ; return ob.ToString(); set ViewStateClientID + OnLoaded = value; public string SupportExtension get object ob = ViewStateClientID + SupportExtension; if (ob = null) ob = gif|png|j
5、peg|jpg; return ob.ToString(); set ViewStateClientID + SupportExtension = value.Replace(., ); public bool ShowImg get object ob = ViewStateClientID + ShowImg; if (ob = null) ob = true; return (bool)ob; set if (bool)value) dvImg.Styledisplay = block; else dvImg.Styledisplay = none; public string File
6、Name get return tbFileName.Text; protected string ParsValue = ; protected void Page_Load(object sender, EventArgs e) ParsValue = AutoFileName= + AutoFileName.ToString() + &SupportExtension= + SupportExtension + &UpLoadPath= + UpLoadPath + &ID= + ClientID; 第二步: 创建FileUpLoad.aspx 复制代码 代码如下: !DOCTYPE h
7、tml PUBLIC -/W3C/DTD XHTML 1.0 Transitional/EN /TR/xhtml1/ function upload(ob) var expStr=/.*()$/i; if(!expStr.test(ob.value) alert(上传文件类型有误。n(支持文件类型:); else var btUp=document.getElementById(); btUp.click(); 复制代码 代码如下:using System; using System.Collections; using System.Configuration; using Sy
8、stem.Data; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Drawing; using System.IO; public partial class WebParts_FileUpLoad : System.Web.UI.Page protected str
9、ing SupportExtension = ; protected string UpLoadPath = ; protected bool AutoFileName; protected string ParentID = ; protected void Page_Load(object sender, EventArgs e) SupportExtension = Request.QueryStringSupportExtension; UpLoadPath = Request.QueryStringUpLoadPath; AutoFileName = bool.Parse(Reque
10、st.QueryStringAutoFileName.ToString(); ParentID = Request.QueryStringID.ToString(); protected void btUp_Click(object sender, EventArgs e) Boolean fileOK = false; if (FileUpload1.HasFile) String fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower(); String allowedExtensions = Su
11、pportExtension.Split(new string | , StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i allowedExtensions.Length; i+) if (fileExtension = . + allowedExtensionsi) fileOK = true; if (fileOK) string path = ; string name = ; string sPath = ; if (AutoFileName) name = DateTime.Now.Ticks.ToString() +
12、 System.IO.Path.GetExtension(FileUpload1.FileName).ToLower(); else name = FileUpload1.FileName; sPath = Request.PhysicalApplicationPath + + UpLoadPath + ; path = sPath + name; /图片地址 string fileName = name; /文件名 string fileName_s = s_ + name; /缩略图文件名称 try /FileInfo file = new FileInfo(name); / string
13、 fileContentType = FileUpload1.PostedFile.ContentType; /string name = FileUpload1.PostedFile.FileName;/客户端文件路径 /string fileName_sy = sy_ + file.Name; /水印图文件名称(文字) /string fileName_syp = syp_ + file.Name;/水印图文件名称(图片) /string webFilePath = Server.MapPath(UpLoadPath + + fileName); /string webFilePath_s
14、 = Server.MapPath(UpLoadPath + + fileName_s); string webFilePath = sPath + fileName;/服务器端文件路径 string webFilePath_s = sPath + fileName_s;/服务器端缩略图路径 if (!File.Exists(webFilePath) if (FileUpload1.PostedFile.ContentLength 800 | image.Height 600) MakeThumbnail(webFilePath, webFilePath_s, 800, 600, W);/生成
15、缩略图的方法 else MakeThumbnail(webFilePath, webFilePath_s, 300, 230, W);/生成缩略图的方法 image.Dispose(); / AddShuiYinWord(webFilePath, webFilePath_sy); /保存水印文字图片 / AddShuiYinPic(webFilePath, webFilePath_syp, webFilePath_sypf);/保存添加水印图片之后的图片 /MakeThumbnail(webFilePath, webFilePath_s, 400, 300, W);/生成缩略图的方法 Page
16、.RegisterClientScriptBlock(succcess, alert(上传成功); parent.document.getElementById( + ParentID + _ + tbFileName + ).value= + fileName_s + ; ); catch (Exception ex) Page.RegisterClientScriptBlock(err, alert(提示:文件上传失败,失败原因: + ex.Message + );); else Page.RegisterClientScriptBlock(err, alert(提示:图片不能大于2M);
17、); else this.Page.RegisterClientScriptBlock(err, alert(图片重复);); catch (System.Exception err) this.Page.RegisterClientScriptBlock(err, alert( + err.Message + );); try Bitmap bmp = new Bitmap(path); int width = 0, height = 0; int dvalue = 200; if (bmp.Width dvalue & bmp.Height bmp.Height) width = dval
18、ue; height = dvalue * (bmp.Width / bmp.Height); else height = dvalue; width = dvalue * (bmp.Height / bmp.Width); this.Page.RegisterClientScriptBlock(show, parent.VarValue= + UpLoadPath + / + fileName_s + ; + parent. + ParentID + CallLoaded(); + .getElementById( + ParentID + _ + dvImg + ).innerHTML=
19、+ + ; ); bmp.Dispose(); catch finally /*判断该文件是否存在,如果存在,则删除图片 if (File.Exists(path) /*删除用户客户端上传的图片,服务器上只保存缩略之后的图片 File.Delete(path); else this.Page.RegisterClientScriptBlock(err, alert(error);); / / 生成缩略图 / / 源图路径(物理路径) / 缩略图路径(物理路径) / 缩略图宽度 / 缩略图高度 / 生成缩略图的方式 public void MakeThumbnail(string origina
20、lImagePath, string thumbnailPath, int width, int height, string mode) System.Drawing.Image originalImage = System.Drawing.Image.FromFile(originalImagePath); int towidth = width; int toheight = height; int x = 0; int y = 0; int ow = originalImage.Width; int oh = originalImage.Height; switch (mode) ca
21、se HW:/指定高宽缩放(可能变形) break; case W:/指定宽,高按比例 toheight = originalImage.Height * width / originalImage.Width; break; case H:/指定高,宽按比例 towidth = originalImage.Width * height / originalImage.Height; break; case Cut:/指定高宽裁减(不变形) if (double)originalImage.Width / (double)originalImage.Height (double)towidth
22、 / (double)toheight) oh = originalImage.Height; ow = originalImage.Height * towidth / toheight; y = 0; x = (originalImage.Width - ow) / 2; else ow = originalImage.Width; oh = originalImage.Width * height / towidth; x = 0; y = (originalImage.Height - oh) / 2; break; default: break; /新建一个bmp图片 System.
23、Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight); /新建一个画板 System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap); /设置高质量插值法 g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; /设置高质量,低速度呈现平滑程度 g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMo
24、de.HighQuality; /清空画布并以透明背景色填充 g.Clear(System.Drawing.Color.Transparent); /在指定位置并且按指定大小绘制原图片的指定部分 g.DrawImage(originalImage, new System.Drawing.Rectangle(0, 0, towidth, toheight), new System.Drawing.Rectangle(x, y, ow, oh), System.Drawing.GraphicsUnit.Pixel); try /以jpg格式保存缩略图 bitmap.Save(thumbnailPa
25、th, System.Drawing.Imaging.ImageFormat.Jpeg); catch (System.Exception e) throw e; finally originalImage.Dispose(); bitmap.Dispose(); g.Dispose(); / / 在图片上增加文字水印 / / 原服务器图片路径 / 生成的带文字水印的图片路径 protected void AddShuiYinWord(string Path, string Path_sy) string addText = ; System.Drawing.Image image = System.Drawing.Image.FromFile(Path); System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(image); g.DrawImage(image, 0, 0, image.Width, image.Height); System.Drawing.Font f = new System.Drawing.Font(Verdana, 16); System.Drawing.Brush b = new System.Drawing.Soli
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于SolidWorks的减速器制造课程设计
- 彩妆静物摄影课程设计
- 拆卸发动机课程设计
- C语言迷宫回溯法实现课程设计
- 包装商务写作课程设计
- 基于RAG的本地问答系统设计课程设计
- Flash控制器硬件调试课程设计
- 超声操作课程设计
- 财务总监培训课程设计
- 编辑课程设计格
- 某110KV变电所电气施工组织设计
- 篮球场体育运动木地板施工安装工艺
- 说课的技巧和方法专题讲座
- 第四章-农田草害课件
- 煤矿建设安全规范
- 纺织品外贸跟单实务
- GB/T 701-2008低碳钢热轧圆盘条
- 材料研究方法-第四章电子显微分析
- 城市安全问题与城市防灾减灾-0902
- 意义未明单克隆免疫球蛋白血症临床意义详解课件
- 气管支架临床应用课件
评论
0/150
提交评论