c#上传图片

    技术2022-05-11  67

    upload.aspx

    <% @ Page CodeBehind = " upload.aspx.cs "  Language = " c# "  AutoEventWireup = " false "  Inherits = " playershow.upload "   %> <! DOCTYPE HTML PUBLIC  " -//W3C//DTD HTML 4.01 Transitional//EN " " http://www.w3.org/TR/html4/loose.dtd " > < HTML >      < HEAD >          < title > 上传 </ title >          < meta http - equiv = " Content-Type "  content = " text/html; charset=gb2312 " >              </ HEAD >      < body > < form runat = " server " >                                                  < table width = " 415 "  border = " 0 "  align = " center "  cellpadding = " 1 "  cellspacing = " 1 " >                                                                                          < tr >                                                                              < td height = " 20 "  rowspan = " 2 "  align = " left " >                                                                                 截图上传 : </ td >                                                                              < td height = " 25 " >& nbsp; < INPUT id = " MyFile "  type = " file "  size = " 34 "  name = " MyFile "  runat = " server " ></ td >                                                                          </ tr >                                                                          < tr >                                                                              < td >< span  class = " style5 " >  [尺寸必须为宽400×300像素;图片大小300K以内]  </ span ></ td >                                                                          </ tr >                                                                                                                                                                      < tr >                                                                              < td height = " 20 "  colspan = " 2 "  align = " left "  valign = " top " >< div align = " center " >                                                                                      < asp:ImageButton id = " ImageButton1 "  runat = " server "  ImageUrl = " images/frame-08.gif " ></ asp:ImageButton ></ div >                                                                              </ td >                                                                          </ tr >                                                                      </ table >                                                  </ form >          </ TBODY ></ TABLE >      </ body > </ HTML >

     

    upload.aspx.cs

    using  System; using  System.Collections; using  System.ComponentModel; using  System.Web.UI.HtmlControls; using  System.Data; using  System.Drawing; using  System.Drawing.Drawing2D; using  System.Drawing.Imaging; using  System.Web; using  System.Configuration; using  System.IO; using  System.Data.SqlClient; namespace  playershow {    /// <summary>    /// screenshots_upload 的摘要说明。    /// </summary>    public class screenshots_upload : System.Web.UI.Page    {        protected System.Web.UI.WebControls.RadioButtonList DbArea;        protected System.Web.UI.HtmlControls.HtmlInputFile MyFile;        protected System.Web.UI.WebControls.TextBox PhotoRemark;        protected System.Web.UI.WebControls.ImageButton ImageButton1;        protected System.Web.UI.WebControls.RadioButtonList PicXiaoType;        protected System.Web.UI.WebControls.TextBox PhotoTitle;            private void Page_Load(object sender, System.EventArgs e)        {                    }        Web 窗体设计器生成的代码        private void ImageButton1_Click(object sender, System.Web.UI.ImageClickEventArgs e)        {                                    string FileName;            FileName="";            if (!upimgtoserver(MyFile,ref FileName))            {                string jsClient = "<script language=javascript>alert('"+FileName+"');</script>";                this.RegisterStartupScript("s1",jsClient);                return;            }            else            {                                return;                        }                }                /// <summary>        /// 文件上传函数        /// </summary>        /// <param name="file">文件控件的名称</param>        private bool upimgtoserver(HtmlInputFile file ,ref string FileName)        {            string FilePath =file.PostedFile.FileName;                             if(FilePath == "" || FilePath == null)            {                FileName="请选择一个文件。";                return false;                                }            if (!filetype(file.PostedFile.ContentType))                        {                FileName="您上传的文件类型无效,支持的上传文件类型:jpg,jpeg,gif,bmp,png,tiff";                    return false;                        }            int intLen=file.PostedFile.ContentLength;            if(intLen>1240*300)            {                FileName="您上传的文件超过300K,请您重新上传";                return false;            }                                         //保存到服务器上的绝对路径和文件名            try            {                addml();                FileName=fliename();                Stream ImageStream = file.PostedFile.InputStream;                Image sImage = Image.FromStream(ImageStream); // 从 Http 输入流创建 image                int kkkk=0;                string syt="UPimg/logo2.png";                if(sImage.Height/sImage.Width<=0.75)                {                    if (sImage.Height>=240)                    {                        kkkk=1;                    }                                    }                else                {                    if(sImage.Width>=320)                    {                        kkkk=1;                    }                }                                                if (kkkk==1)                {                    syt="UPimg/logo.png";                }                string wImageFile = Server.MapPath(syt); // 要加的水印图                Image wImage = Image.FromFile(wImageFile);                // 绘图                Bitmap bitmap = new Bitmap(sImage.Width, sImage.Height, PixelFormat.Format32bppArgb);                Graphics g = Graphics.FromImage(bitmap);                g.Clear(Color.Transparent);                g.DrawImage(sImage, new Rectangle(00, sImage.Width, sImage.Height));                 //Graphics g = Graphics.FromImage(sImage);                g.DrawImage(wImage, new Rectangle(sImage.Width-wImage.Width, sImage.Height-wImage.Height, wImage.Width, wImage.Height),00, wImage.Width, wImage.Height, GraphicsUnit.Pixel);                // 保存,并将 image 转化为 byte[]                MemoryStream ms=new MemoryStream();                                bitmap.Save(ms, ImageFormat.Jpeg);                 FileName=fliename()+".jpg";                                 ms.GetBuffer();                FileStream f = new FileStream(Server.MapPath("upImg/daPic"+ "/" + FileName, FileMode.Create);                    ///把内内存里的数据写入物理文件                ms.WriteTo(f);                ms.Close();                f.Close();                f = null;                ms = null;                bitmap.Dispose();                Bitmap bitmap2 = new Bitmap(12090, PixelFormat.Format32bppArgb);                Graphics g2 = Graphics.FromImage(bitmap2);                g2.Clear(Color.Transparent);                g2.DrawImage(sImage, new Rectangle(0012090));                 MemoryStream ms2=new MemoryStream();                                bitmap2.Save(ms2, ImageFormat.Jpeg);                                              ms2.GetBuffer();                FileStream f2 = new FileStream(Server.MapPath("upImg/xiaoPic"+ "/" + FileName, FileMode.Create);                    ///把内内存里的数据写入物理文件                ms2.WriteTo(f2);                ms2.Close();                f2.Close();                f2 = null;                ms2 = null;                bitmap2.Dispose();                sImage.Dispose();                        return true;            }            catch(Exception ex)            {                FileName =ex.ToString();                        }            return false;        }        /// <summary>        /// 返回一个带有路径的文件名        /// </summary>        /// <returns>返回一个字符串</returns>        private string fliename()        {            DateTime now =DateTime.Now;            string ml=now.ToString("yyyyMMdd");                string  newname=now.ToString("yyyyMMddhhmmss");            string  lmname=now.ToString("yyyy-MM");            Random a =new Random();            int s=Convert.ToInt32(a.NextDouble()*100000+100000);            return lmname+"/"+newname+ s.ToString();        }        /// <summary>        /// 判断目录是否存在        /// 如果不存在则创建目录;        /// </summary>        private void addml()        {            DateTime now =DateTime.Now;            string  lmname=now.ToString("yyyy-MM");                        if (!Directory.Exists(Server.MapPath("upImg/xiaoPic")+"/"+lmname))            {                                Directory.CreateDirectory(Server.MapPath("upImg/xiaoPic")+"/"+lmname);            }            if (!Directory.Exists(Server.MapPath("upImg/daPic")+"/"+lmname))            {                                Directory.CreateDirectory(Server.MapPath("upImg/daPic")+"/"+lmname);            }                }        private bool filetype(string type)        {            bool s=false;            string[] wjlx={"image/jpeg","image/pjpeg","image/png","image/tiff","image/gif","image/bmp"};            for(int i=0;i<= wjlx.Length-1;i++)            {                if (wjlx[i]==type)                {                    s=true;                    break;                                    }            }            return s;        }           }}  

    最新回复(0)