一次上传多张图片

    技术2025-03-14  38

    <!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">    <title>无标题页</title>

        <script language="javascript" type="text/javascript" >        function $(o){return document.getElementById(o);}        function CheckImgCss(o,img)        {            if (!//.((jpg)|(bmp)|(gif)|(png))$/ig.test(o.value))            {                alert('只能上传jpg,bmp,gif,png格式图片!');                o.outerHTML = o.outerHTML;            }            else            {                $(img).filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src=o.value;                //$('Image1').src = o.value;//这里IE7已经不支持了。所以才有上面的方法。            }        }    </script>

    </head><body bgcolor="White">    <form id="form1" runat="server">    <div>        <h1>            一次上传多个图片并预览,请选择图片:</h1>        <asp:FileUpload ID="FileUpload1" οnchange="CheckImgCss(this, 'img');" runat="server" />        <asp:FileUpload ID="FileUpload2" οnchange="CheckImgCss(this, 'img');" runat="server" />        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="上传" />        <div id="img" style="filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=<%= pic%>,sizingMethod=scale);            width: 102px; height: 100px;">        </div>    </div>    </form></body>

     

     

     

    using System;using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Drawing;

    public partial class Default2 : System.Web.UI.Page{

        //该变量用来修改的的时候的默认值。例如上传自己的头像,如果用户修改头像,这里可以显示他原来的头像。    public string pic = "http://www.svnhost.cn/images/logo.gif";

        protected void Page_Load(object sender, EventArgs e)    {        保存在数据库中的文件路径        //ArrayList arrFilePath = new ArrayList();        //arrFilePath = myCommonMethod.UploadPic(Files, "/UpLoads/UpPicture/");        获取文件名称        //string fileName = arrFilePath[0].SubString(arrFilePath[0].LastIndexOf("/") + 1);        源图路径(物理路径)        //string originalImagePath = Request.PhysicalApplicationPath + "/UpLoads/UpPicture/" + fileName;        缩略图路径(物理路径)        //string thumbnailPath = Request.PhysicalApplicationPath + "/UpLoads/UpPicture/" + "thumb_" + fileName;        调用生成缩略图方法        //this.MakeThumbnail(originalImagePath, thumbnailPath, 120, 150, strMode, out outthumbnailPath);

        }    #region  生成缩略图    ///<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, out string outthumbnailPath)    {        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);

            //新建一个画板         Graphics g = System.Drawing.Graphics.FromImage(bitmap);

            //设置高质量插值法         g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;

            //设置高质量,低速度呈现平滑程度         g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

            //清空画布并以透明背景色填充         g.Clear(Color.Transparent);

            //在指定位置并且按指定大小绘制原图片的指定部分         g.DrawImage(originalImage, new Rectangle(0, 0, towidth, toheight),         new Rectangle(x, y, ow, oh),         GraphicsUnit.Pixel);

            try        {            //以jpg格式保存缩略图             bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);            outthumbnailPath = thumbnailPath;        }        catch (System.Exception e)        {            throw e;        }        finally        {            originalImage.Dispose();            bitmap.Dispose();            g.Dispose();        }    }    #endregion

        protected void Button1_Click(object sender, EventArgs e)    {        Random r = new Random();        //这样循环,可以同时上传多个文件。前台已经有文件格式的判断,有错误提示了。这里只要过滤掉非法文件即可,无需提示了。        for (int i = 0; i < Request.Files.Count; i++)        {            if (Request.Files[i].ContentLength > 0)            {                string ex = System.IO.Path.GetExtension(Request.Files[i].FileName).ToLower();                if (".jpg.gif.png.bmp".Contains(ex))                {                    string newFileName = DateTime.Now.ToString("yyyyMMddHHmmss") + r.Next(100, 999).ToString() + ex;                    //保存文件名到数据库                    //xxxxxxxxxxxxxxxx                    //xxxxxxxxxxxxxxxx

                        Request.Files[i].SaveAs(Server.MapPath(newFileName));                    pic = newFileName;                }            }        }    }}

    最新回复(0)