<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        asp.net 自定義控件實現無刷新上傳圖片,立即顯示縮略圖,保存圖片縮略圖

        來源:懂視網 責編:小采 時間:2020-11-27 22:43:39
        文檔

        asp.net 自定義控件實現無刷新上傳圖片,立即顯示縮略圖,保存圖片縮略圖

        asp.net 自定義控件實現無刷新上傳圖片,立即顯示縮略圖,保存圖片縮略圖:如圖: 點擊瀏覽,選擇圖片之后,右面顯示圖片 第一步: 創建CtFileUpLoad.ascx 代碼如下:<%@ Control Language=C# AutoEventWireup=true CodeFile=CtFileUpLoad.ascx.cs Inherits=WebParts_CtFileUpL
        推薦度:
        導讀asp.net 自定義控件實現無刷新上傳圖片,立即顯示縮略圖,保存圖片縮略圖:如圖: 點擊瀏覽,選擇圖片之后,右面顯示圖片 第一步: 創建CtFileUpLoad.ascx 代碼如下:<%@ Control Language=C# AutoEventWireup=true CodeFile=CtFileUpLoad.ascx.cs Inherits=WebParts_CtFileUpL

        如圖:

        點擊瀏覽,選擇圖片之后,右面顯示圖片

        第一步:

        創建CtFileUpLoad.ascx
        代碼如下:


        <%@ Control Language="C#" AutoEventWireup="true" CodeFile="CtFileUpLoad.ascx.cs"
        Inherits="WebParts_CtFileUpLoad" %>
        <table cellpadding="0" cellspacing="0">
        <tr>
        <td>
        <iframe src="https://www.gxlcms.com/WebParts/FileUpLoad.aspx?<%=ParsValue %>" width="240px" height="22px" frameborder="0" scrolling="no"></iframe>
        </td>
        <td>
        <asp:TextBox runat="server" ID="tbFileName" style="display:none"></asp:TextBox>
        <div id="dvImg" runat="server" style="position:absolute; margin-left:50px;">
        </div>
        </td>
        </tr>
        </table>
        <script language="javascript">
        function <%=ClientID %>CallLoaded()
        {
        <% =OnLoaded %>;
        }
        </script>

        代碼如下:

        using System;
        using System.Collections;
        using System.Configuration;
        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
        {
        public bool AutoFileName
        {
        get
        {
        object ob = ViewState[ClientID + "AutoFileName"];
        if (ob == null)
        ob = true;
        return (bool)ob;
        }
        set
        {
        ViewState[ClientID + "AutoFileName"] = value;
        }
        }
        public string UpLoadPath
        {
        get
        {
        object ob = ViewState[ClientID + "UpLoadPath"];
        if (ob == null)
        ob = "UPLOADFILES";
        return ob.ToString();
        }
        set
        {
        ViewState[ClientID + "UpLoadPath"] = value;
        }
        }
        public string OnLoaded
        {
        get
        {
        object ob = ViewState[ClientID + "OnLoaded"];
        if (ob == null)
        ob = "";
        return ob.ToString();
        }
        set
        {
        ViewState[ClientID + "OnLoaded"] = value;
        }
        }
        public string SupportExtension
        {
        get
        {
        object ob = ViewState[ClientID + "SupportExtension"];
        if (ob == null)
        {
        ob = "gif|png|jpeg|jpg";
        }
        return ob.ToString();
        }
        set
        {
        ViewState[ClientID + "SupportExtension"] = value.Replace(".", "");
        }
        }
        public bool ShowImg
        {
        get
        {
        object ob = ViewState[ClientID + "ShowImg"];
        if (ob == null)
        ob = true;
        return (bool)ob;
        }
        set
        {
        if ((bool)value)
        dvImg.Style["display"] = "block";
        else
        dvImg.Style["display"] = "none";
        }
        }
        public string FileName
        {
        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
        代碼如下:

        <%@ Page Language="C#" AutoEventWireup="true" CodeFile="FileUpLoad.aspx.cs" Inherits="WebParts_FileUpLoad" %>
        <!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">
        </head>
        <body style="margin:0px;">
        <form id="form1" runat="server">
        <div>
        <asp:FileUpload runat="server" ID="FileUpload1" onchange="upload(this);" />
        <asp:Button runat="server" ID="btUp" style="display:none" OnClick="btUp_Click" />
        </div>
        </form>
        </body>
        </html>
        <script language="javascript">
        function upload(ob)
        {
        var expStr=/.*(<%=SupportExtension%>)$/i;
        if(!expStr.test(ob.value))
        {
        alert("上傳文件類型有誤。\n(支持文件類型:<%=SupportExtension%>)");
        }
        else
        {
        var btUp=document.getElementById("<%=btUp.ClientID %>");
        btUp.click();
        }
        }
        </script>

        代碼如下:

        using System;
        using System.Collections;
        using System.Configuration;
        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;
        using System.IO;
        public partial class WebParts_FileUpLoad : System.Web.UI.Page
        {
        protected string SupportExtension = "";
        protected string UpLoadPath = "";
        protected bool AutoFileName;
        protected string ParentID = "";
        protected void Page_Load(object sender, EventArgs e)
        {
        SupportExtension = Request.QueryString["SupportExtension"];
        UpLoadPath = Request.QueryString["UpLoadPath"];
        AutoFileName = bool.Parse(Request.QueryString["AutoFileName"].ToString());
        ParentID = Request.QueryString["ID"].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 = SupportExtension.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
        for (int i = 0; i < allowedExtensions.Length; i++)
        {
        if (fileExtension == "." + allowedExtensions[i])
        {
        fileOK = true;
        }
        }
        if (fileOK)
        {
        string path = "";
        string name = "";
        string sPath = "";
        if (AutoFileName)
        {
        name = DateTime.Now.Ticks.ToString() + 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 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 = Server.MapPath(UpLoadPath + "\\" + fileName_s);
        string webFilePath = sPath + fileName;//服務器端文件路徑
        string webFilePath_s = sPath + fileName_s;//服務器端縮略圖路徑

        if (!File.Exists(webFilePath))
        {
        if (FileUpload1.PostedFile.ContentLength < 2 * 1024 * 1024) //如果圖片小于2M
        {
        try
        {
        FileUpload1.SaveAs(path); //使用saveAS方法保存文件
        System.Drawing.Image image = System.Drawing.Image.FromFile(path);
        if (image.Width > 800 || image.Height > 600)
        {
        MakeThumbnail(webFilePath, webFilePath_s, 800, 600, "W");//生成縮略圖的方法
        }
        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.RegisterClientScriptBlock("succcess", @"<script>
        alert('上傳成功');
        parent.document.getElementById('" + ParentID + "_" + "tbFileName" + @"').value='" + fileName_s + @"';
        </script>");
        }
        catch (Exception ex)
        {
        Page.RegisterClientScriptBlock("err", "<script>alert('提示:文件上傳失敗,失敗原因::" + ex.Message + "');</script>");
        }
        }
        else
        {
        Page.RegisterClientScriptBlock("err", "<script>alert('提示:圖片不能大于2M');</script>");
        }
        }
        else
        {
        this.Page.RegisterClientScriptBlock("err", "<script>alert('圖片重復');</script>");
        }
        }
        catch (System.Exception err)
        {
        this.Page.RegisterClientScriptBlock("err", "<script>alert('" + err.Message + "');</script>");
        }
        try
        {
        Bitmap bmp = new Bitmap(path);
        int width = 0, height = 0;
        int dvalue = 200;
        if (bmp.Width < dvalue & bmp.Height < 200)
        {
        width = bmp.Width;
        height = bmp.Height;
        }
        else if (bmp.Width > bmp.Height)
        {
        width = dvalue;
        height = dvalue * (bmp.Width / bmp.Height);
        }
        else
        {
        height = dvalue;
        width = dvalue * (bmp.Height / bmp.Width);
        }
        this.Page.RegisterClientScriptBlock("show", @"<script>
        parent.VarValue='" + UpLoadPath + "/" + fileName_s + "';" +
        "parent." + ParentID + "CallLoaded();" +
        "parent.document.getElementById('" + ParentID + "_" + "dvImg" + @"').innerHTML=""" +
        "<img src='//www.gxlcms.com/" + UpLoadPath + "/" + fileName_s + "' style='width:" + width.ToString() + "px; height:" + height + "px;'/>" + @""";
        </script>");
        bmp.Dispose();
        }
        catch
        {
        }
        finally
        {
        //****判斷該文件是否存在,如果存在,則刪除圖片
        if (File.Exists(path))
        {
        //****刪除用戶客戶端上傳的圖片,服務器上只保存縮略之后的圖片
        File.Delete(path);
        }
        }
        }
        else
        {
        this.Page.RegisterClientScriptBlock("err", "<script>alert('error');</script>");
        }
        }
        }
        /// <summary>
        /// 生成縮略圖
        /// </summary>
        /// <param name="originalImagePath">源圖路徑(物理路徑)</param>
        /// <param name="thumbnailPath">縮略圖路徑(物理路徑)</param>
        /// <param name="width">縮略圖寬度</param>
        /// <param name="height">縮略圖高度</param>
        /// <param name="mode">生成縮略圖的方式</param>
        public void MakeThumbnail(string originalImagePath, 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)
        {
        case "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 / (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.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.SmoothingMode.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(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
        }
        catch (System.Exception e)
        {
        throw e;
        }
        finally
        {
        originalImage.Dispose();
        bitmap.Dispose();
        g.Dispose();
        }
        }
        /// <summary>
        /// 在圖片上增加文字水印
        /// </summary>
        /// <param name="Path">原服務器圖片路徑</param>
        /// <param name="Path_sy">生成的帶文字水印的圖片路徑</param>
        protected void AddShuiYinWord(string Path, string Path_sy)
        {
        string addText = "http://www.gxlcms.com";
        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.SolidBrush(System.Drawing.Color.Blue);
        g.DrawString(addText, f, b, 15, 15);
        g.Dispose();
        image.Save(Path_sy);
        image.Dispose();
        }
        /// <summary>
        /// 在圖片上生成圖片水印
        /// </summary>
        /// <param name="Path">原服務器圖片路徑</param>
        /// <param name="Path_syp">生成的帶圖片水印的圖片路徑</param>
        /// <param name="Path_sypf">水印圖片路徑</param>
        protected void AddShuiYinPic(string Path, string Path_syp, string Path_sypf)
        {
        System.Drawing.Image image = System.Drawing.Image.FromFile(Path);
        System.Drawing.Image copyImage = System.Drawing.Image.FromFile(Path_sypf);
        System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(image);
        g.DrawImage(copyImage, new System.Drawing.Rectangle(image.Width - copyImage.Width, image.Height - copyImage.Height, copyImage.Width, copyImage.Height), 0, 0, copyImage.Width, copyImage.Height, System.Drawing.GraphicsUnit.Pixel);
        g.Dispose();
        image.Save(Path_syp);
        image.Dispose();
        }
        }

        屬性:
        SupportExtension 自定義上傳的格式,用"|"分隔;
        UpLoadPath   自定義上傳到服務器的文件夾;
        AutoFileName  ture表示根據時間自動生成文件名,不會重復,false表示原來的圖片名稱,重復會覆蓋.

        轉載請注明出處
        2009-12-24 18:39:27 by 齊學佳

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        asp.net 自定義控件實現無刷新上傳圖片,立即顯示縮略圖,保存圖片縮略圖

        asp.net 自定義控件實現無刷新上傳圖片,立即顯示縮略圖,保存圖片縮略圖:如圖: 點擊瀏覽,選擇圖片之后,右面顯示圖片 第一步: 創建CtFileUpLoad.ascx 代碼如下:<%@ Control Language=C# AutoEventWireup=true CodeFile=CtFileUpLoad.ascx.cs Inherits=WebParts_CtFileUpL
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 91热成人精品国产免费| a级毛片在线视频免费观看| 1000部拍拍拍18勿入免费视频软件 | 女人被男人躁的女爽免费视频| 综合自拍亚洲综合图不卡区| 免费国产黄网站在线观看 | 亚洲一级免费毛片| 亚洲国产中文在线视频| 1000部拍拍拍18勿入免费凤凰福利| 亚洲视频一区调教| 久久国产精品成人片免费| 亚洲狠狠ady亚洲精品大秀| 日本免费xxxx色视频| 99久久婷婷国产综合亚洲| 青青青国产免费一夜七次郎 | 国产亚洲av人片在线观看| 久久毛片免费看一区二区三区| 国产亚洲精品看片在线观看| 在线视频网址免费播放| 久久青青成人亚洲精品| 免费在线视频你懂的| 亚洲中文字幕久久精品无码VA| 国产小视频免费观看| 乱爱性全过程免费视频| 亚洲色图国产精品| 欧亚精品一区三区免费| 黄色毛片免费在线观看| 亚洲国产成人一区二区三区| 国产四虎免费精品视频| 亚洲第一se情网站| 亚洲人成毛片线播放| 国产免费怕怕免费视频观看| 国产精品九九久久免费视频| 18gay台湾男同亚洲男同| 毛色毛片免费观看| 久青草视频97国内免费影视| 亚洲精品一卡2卡3卡三卡四卡| 国产精品色午夜视频免费看 | 91久久青青草原线免费| 黄色网址免费在线| 亚洲日本国产精华液|