| 网站镜像:电信 网通 | 加入收藏 | 设为首页

图片上传的Codebehind(自动生成所略图)

  • using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Configuration;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Text;
    using cj168.util;



    namespace cj168.Web.Mag.Admins.FeData
    {
        /// <summary>
        /// Summary description for fedata.
        /// </summary>
        public class feUploadPic : System.Web.UI.Page
        {
            protected System.Web.UI.WebControls.TextBox txtboxPicTitle;
            protected System.Web.UI.WebControls.Calendar calPicDate;
            protected System.Web.UI.WebControls.DropDownList ddlPicType;
            protected System.Web.UI.WebControls.TextBox txtboxPicIntro;
            protected System.Web.UI.HtmlControls.HtmlInputFile filePicName;
            protected System.Web.UI.WebControls.Button btnSubmit;
            protected System.Web.UI.WebControls.Label lblPicInfo;
            protected System.Web.UI.WebControls.TextBox txtboxPicDate;
            protected System.Web.UI.WebControls.RequiredFieldValidator Requiredfieldvalidator1;
            protected System.Web.UI.WebControls.RegularExpressionValidator vldCatName;
            protected System.Web.UI.WebControls.RequiredFieldValidator Requiredfieldvalidator2;
            protected System.Web.UI.WebControls.CustomValidator CustomValidator1;
            protected System.Web.UI.WebControls.RegularExpressionValidator RegularExpressionValidator1;
            protected System.Web.UI.WebControls.HyperLink hlkOriPic;
            protected System.Web.UI.WebControls.HyperLink hlkNewPic;
            protected System.Web.UI.WebControls.RegularExpressionValidator Regularexpressionvalidator2;
            protected System.Web.UI.WebControls.RegularExpressionValidator Regularexpressionvalidator3;
            protected System.Web.UI.WebControls.CheckBoxList checkboxlistRewrite;
            
            
        
            private void Page_Load(object sender, System.EventArgs e)
            {
                // Put user code to initialize the page here
                //if(Page.IsPostBack)
                //txtboxPicDate.Text = calPicDate.SelectedDate.ToString();

                if(!Page.IsPostBack)
                {
                    Bind2DropDownListPicType();

                    //for(int i = 0;i < Request.Files.Count; i++)
                    //{                
                    //    checkboxlistRewrite.Items[i].Selected = false;
                    //}
                }


                


            }

            public void Bind2DropDownListPicType()
            {
                cj168.DataAccess.Admins admins = new cj168.DataAccess.Admins();
                DataSet ds = admins.FePicTypeGet();
                //ddlPicType.DataSource = ;
                DataView dv = new DataView(ds.Tables["PicType"]);
                
                DataRowView drv = dv.AddNew();
                //DataColumnView dcv = dv.AddNew();
                drv["Title"] = "请选择";
                drv["fePicTypeID"] = "0";
                drv.EndEdit();            
                

                dv.Sort = "fePicTypeID";            

                ddlPicType.DataSource = dv;

                ddlPicType.DataBind();
            }

            public void UploadFile(object sender, System.EventArgs e)
            {
                
                    string imgNameOnly, imgNameNoExt, imgExt;
                    string imgThumbnail;
                    int erroNumber = 0;
                    System.Drawing.Image oriImg, newImg;
                    string strFePicSavePath = ConfigurationSettings.AppSettings["FePicSavePath"].ToString();
                    string strFePicThumbFormat = ConfigurationSettings.AppSettings["FePicThumbFormat"].ToString().ToLower();
                    int intFeThumbWidth = Int32.Parse(ConfigurationSettings.AppSettings["FePicThumbWidth"]);
                    string fileExt;
                    string strPicTitle = txtboxPicTitle.Text;
                    string strPicIntro = txtboxPicIntro.Text;
                    string strPicDate = txtboxPicDate.Text;

                    int intPicType = Int32.Parse(ddlPicType.SelectedItem.Value);
                    string strPicType = intPicType.ToString() + "_" + DateTime.Now.Date.ToShortDateString() + "_";
                    string strFePicWebPath = ConfigurationSettings.AppSettings["FePicWebPath"];

                    cj168.DataAccess.Admins admins = new cj168.DataAccess.Admins();
                    
                    //if(admins.FePicTypeSet(textboxTitle.Text,0) < 0)
                    //    lblAddPicInfo.Text = "操作失败:已经存在相同名称类型,请修改";
                    //else
                    //    lblAddPicInfo.Text = "操作成功";


                    StringBuilder picInfo = new StringBuilder();

                
                
                if(Page.IsValid)
                {
                

                    for(int i = 0;i < Request.Files.Count; i++)
                    {
                        HttpPostedFile PostedFile = Request.Files[i];
                        fileExt = (System.IO.Path.GetExtension(PostedFile.FileName)).ToString().ToLower();
                        //5-test.jpg
                        imgNameOnly = strPicType + System.IO.Path.GetFileName(PostedFile.FileName);
                        if(fileExt == ".jpg" || fileExt == ".gif" || fileExt == ".png")
                        {

                            if(System.IO.File.Exists(strFePicSavePath + imgNameOnly) && (checkboxlistRewrite.Items[i].Selected == false))
                            {
                                erroNumber = erroNumber + 1;
                                picInfo.Append("<b>错误:</b>文件("+ (i+1) +") " + imgNameOnly + " 已经存在,请修改文件名<br>" );
                            }
                        }
                        else
                        {
                            erroNumber = erroNumber + 1;
                            if(fileExt == "")
                                picInfo.Append("<b>错误:</b>请选择文件<br>" );
                            else
                            picInfo.Append("<b>错误:</b>文件("+ (i+1) +") " + imgNameOnly + " 扩展名 " + fileExt + " 不被许可<br>" );
                        }                

                    }

                    if(erroNumber > 0)
                    {
                        picInfo.Append("<font color=red>全部操作均未完成,请修改错误,再进行操作</font><br>");

                        hlkOriPic.ImageUrl = "";
                        hlkOriPic.ToolTip = "";
                        hlkNewPic.ImageUrl = "";
                        hlkNewPic.ToolTip = "";
                    }
                    else            
                    {
                        for(int i = 0;i < Request.Files.Count; i++)
                        {
                    
                            HttpPostedFile PostedFile = Request.Files[i];
                            imgNameOnly = strPicType + System.IO.Path.GetFileName(PostedFile.FileName);
                            imgNameNoExt = System.IO.Path.GetFileNameWithoutExtension(PostedFile.FileName);
                            imgExt = System.IO.Path.GetExtension(PostedFile.FileName).ToString().ToLower();
                        
                        
                            oriImg = System.Drawing.Image.FromStream(PostedFile.InputStream);
                            newImg = oriImg.GetThumbnailImage(intFeThumbWidth, intFeThumbWidth * oriImg.Height/oriImg.Width,null,new System.IntPtr(0));
                            switch(imgExt)
                            {
                                //case ".jpeg":
                                case ".jpg":
                                    oriImg.Save(strFePicSavePath + imgNameOnly , System.Drawing.Imaging.ImageFormat.Jpeg);
                                    break;
                                case ".gif":
                                    oriImg.Save(strFePicSavePath + imgNameOnly , System.Drawing.Imaging.ImageFormat.Gif);
                                    break;
                                case ".png":
                                    oriImg.Save(strFePicSavePath + imgNameOnly , System.Drawing.Imaging.ImageFormat.Png);
                                    break;
                            }
                            
                            //oriImg.Save(ConfigurationSettings.AppSettings["FePicSavePath"] + imgNameNoExt + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
                            
                                            
                            switch(strFePicThumbFormat)
                            {
                                    //jpeg format can get the smallest file size, and the png is the largest size
                                //case "jpeg":
                                case "jpg":
                                    newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);
                                    imgThumbnail = imgNameOnly + "_thumb.jpg";
                                    break;
                                case "gif":
                                    newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.gif",System.Drawing.Imaging.ImageFormat.Gif);
                                    imgThumbnail = imgNameOnly + "_thumb.gif";
                                    break;
                                case "png":
                                    newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.png",System.Drawing.Imaging.ImageFormat.Png);
                                    imgThumbnail = imgNameOnly + "_thumb.png";
                                    break;
                                default:
                                    newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);
                                    imgThumbnail = imgNameOnly + "_thumb.jpg";                        
                                    break;
                        
                            }//switch
                            
                            picInfo.Append("<b>文件 名:</b>" + imgNameOnly + " ( " + oriImg.Width + " x " + oriImg.Height + " ) " + PostedFile.ContentLength/1024 + "KB<br>");
                            picInfo.Append("<b>缩略图名:</b>" + imgThumbnail + " ( " + newImg.Width + " x " + newImg.Height + " )<br><br>");

                            hlkOriPic.ImageUrl = strFePicWebPath + imgNameOnly;
                            hlkOriPic.ToolTip = "◆原图◆\n文件名:" + imgNameOnly + "\n尺寸:" + oriImg.Width + " x " + oriImg.Height + "\n字节:" + PostedFile.ContentLength/1024 + "KB";
                            hlkNewPic.ImageUrl = strFePicWebPath + imgThumbnail;
                            hlkNewPic.ToolTip = "◆缩略图◆\n文件名:" + imgThumbnail + "\n尺寸:" + newImg.Width + " x " + newImg.Height;
                            

                            oriImg.Dispose();
                            newImg.Dispose();
                            picInfo.Append("<font color=red>图片上传成功</font><br>");
                            if(admins.FePicDataSet(strPicTitle, strPicDate, imgNameOnly, intPicType, strPicIntro, imgThumbnail,0) < 0)
                                picInfo.Append("<font color=red>保存信息到数据库失败</font><br>");
                            else
                                picInfo.Append("<font color=red>保存信息到数据库成功</font><br>");
                        
                        }//for
                        picInfo.Append("<font color=red>所有操作成功</font><br>");

                    }// if erronumber = 0

                
                    
                }
                else
                {
                    picInfo.Append("<font color=red>有错误,请检查。操作未成功</font><br>");

                    hlkOriPic.ImageUrl = "";
                    hlkOriPic.ToolTip = "";
                    hlkNewPic.ImageUrl = "";
                    hlkNewPic.ToolTip = "";

                }

                for(int i = 0;i < Request.Files.Count; i++)
                {                
                    checkboxlistRewrite.Items[i].Selected = false;
                }

                lblPicInfo.Text = picInfo.ToString();

            }

            public void CalDateSelected(object sender,System.EventArgs e)
            {
                txtboxPicDate.Text = calPicDate.SelectedDate.ToShortDateString();

            }

            public void ServerValidateCheckDate(object sender, System.Web.UI.WebControls.ServerValidateEventArgs value)
            {
                cj168.util.iUtil iUtils = new cj168.util.iUtil();
                if(!iUtils.IsDate(value.Value))
                    value.IsValid = false;
                else
                    value.IsValid = true;

            }

            


            #region Web Form Designer generated code
            override protected void OnInit(EventArgs e)
            {
                //
                // CODEGEN: This call is required by the ASP.NET Web Form Designer.
                //
                InitializeComponent();
                base.OnInit(e);
            }
            
            /// <summary>
            /// Required method for Designer support - do not modify
            /// the contents of this method with the code editor.
            /// </summary>
            private void InitializeComponent()
                                                                        {    
                this.Load += new System.EventHandler(this.Page_Load);

            }
            #endregion
        }
    }