| 
| 技术资料  > .Net专区 > Asp.Net开发 : 图片上传的Codebehind(自动生成所略图) |  
图片上传的Codebehind(自动生成所略图) March 25,2004 |  
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.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; 
                    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.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; 
                        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.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 
    } 
} 
 |  
 
 |