• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    c#多图片上传并生成缩略图的实例代码

    前台代码:

    复制代码 代码如下:


     %@ Page Language="C#" AutoEventWireup="true" CodeFile="upload.aspx.cs" Inherits="upload" %>

     !DOCTYPE html>

     html xmlns="http://www.w3.org/1999/xhtml">
     head runat="server">
         meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
         title>/title>
         style type="text/css">
             li
             {
                 list-style: none;
                 padding-top: 10px;
             }
         /style>
         script type="text/javascript" src="js/jquery-1.6.2.min.js">/script>
         script type="text/javascript">
             function ValidImage(id, msg) {
                 $(id).parent().append("span>" + msg + "/span>");
                 return false;
             }
         /script>
     /head>
     body>
         form id="form1" runat="server" enctype="multipart/form-data" method="post">
             div>
                           ul>
                     li>
                         input type="file" id="upload1" name="upload" />
                     /li>
                     li>
                         input type="file" id="upload2" name="upload" />
                     /li>
                     li>
                         input type="file" id="upload3" name="upload" />
                     /li>
                     li>
                         input type="file" id="upload4" name="upload" />/li>
                     li>
                         input type="file" id="upload5" name="upload" />

                     /li>
                     li>
                         input type="submit" id="btnPostFile" runat="server" onserverclick="btnPostFile_ServerClick" value="开始上传" />
                     /li>
                 /ul>
             /div>
         /form>
     /body>
     /html>

    前台就是几个控件和一个ValidImage方法。

    后台代码:

    复制代码 代码如下:


      protected void btnPostFile_ServerClick(object sender, EventArgs e)
         {
             string filePath = Server.MapPath("/uploadImg");
             const int size = 5242880;
             if (!Directory.Exists(filePath))
             {
                 Directory.CreateDirectory(filePath);
             }
             if (Request.Files.Count > 0)
             {
                 for (int i = 0; i Request.Files.Count; i++)
                 {
                     HttpPostedFile postFile = Request.Files[i];
                     string uploadFileID = string.Format("#upload{0}", i + 1);  //当前的上传控件ID,因为jquery要调用就加了#
                     string msg = null;                 //提示信息
                     if (postFile.FileName.Trim().Length = 0)
                     {
                         continue;
                     }
                     if (postFile.ContentLength > size)
                     {
                         msg = "文件太大";
                         Page.ClientScript.RegisterStartupScript(GetType(), "", "ValidImage(" + uploadFileID + "," + msg + ")", true);//将提示信息发送到客户端
                         continue;
                     }
                     string savePath = Path.Combine(filePath, postFile.FileName);        //图片的保存地址
                     if (!File.Exists(savePath))
                     {
                         postFile.SaveAs(Path.Combine(filePath, postFile.FileName));     //如果文件不存在就保存
                     }
                     else
                     {
                         msg = "文件" + postFile.FileName + "已经存在";
                         Page.ClientScript.RegisterStartupScript(GetType(), "", "ValidImage(" + uploadFileID + "," + msg + ")", true);//将提示信息发送到客户端
                         continue;
                     }
                     if (IsImg(savePath))            //通过IsImg方法验证文件是否是图片,或者格式是否正确
                     {
                         SmallImg(postFile.InputStream, postFile.FileName);
                     }
                     else
                     {
                         msg = "只能上传JGP、PNG类型的图片,请检查文件格式是否正确";
                         Page.ClientScript.RegisterStartupScript(GetType(), "", "ValidImage(" + uploadFileID + "," + msg + ")", true);//将提示信息发送到客户端
                         File.Delete(savePath);  //如果不是图片就删除
                     }
                 }
             }
         }

    复制代码 代码如下:

      #region 验证上传文件的格式
         /// summary>
         /// 验证上传文件是否是图片
         /// /summary>
         /// param name="FilePath">文件的保存路径/param>
         /// returns>/returns>
         private bool IsImg(string FilePath)
         {
             using (FileStream fs = new FileStream(FilePath, FileMode.Open, FileAccess.Read))
             {
                 bool result = false;
                 BinaryReader br = new BinaryReader(fs, System.Text.Encoding.UTF8);
                 string strImg = "";
                 byte buffer;
                 try
                 {
                     buffer = br.ReadByte();
                     strImg = buffer.ToString();
                     buffer = br.ReadByte();
                     strImg += buffer.ToString();
                 }
                 catch
                 {
                     fs.Close();
                     br.Close();

                 }
                 if (strImg == "255216" || strImg == "13780")//说明255216是jpg;7173是gif;6677是BMP,13780是PNG;7790是exe,8297是rar
                 {
                     result = true;
                 }
                 return result;
             }
         }
         #endregion

    复制代码 代码如下:


       #region 将图片生成缩略图
         /// summary>
         /// 生成缩略图
         /// /summary>
         private void SmallImg(Stream oStream, string FileName)
         {
             using (System.Drawing.Image img = System.Drawing.Image.FromStream(oStream))
             {
                 int newWidth = 100;
                 int newHeight = 80;
                 int oldWidth = img.Width;
                 int oldHeight = img.Height;
                 if (oldWidth > oldHeight)
                 {
                     newHeight = (int)Math.Floor((double)oldHeight * (double)newWidth / (double)oldWidth);
                 }
                 else
                 {
                     newWidth = (int)Math.Floor((double)oldWidth * (double)newHeight / (double)oldHeight);
                 }
                 using (Bitmap bmp = new Bitmap(newWidth, newHeight))
                 {
                     using (Graphics g = Graphics.FromImage(bmp))
                     {
                         g.Clear(Color.Transparent);
                         g.InterpolationMode = InterpolationMode.High;
                         g.CompositingQuality = CompositingQuality.HighQuality;
                         g.SmoothingMode = SmoothingMode.HighQuality;
                         g.DrawImage(img, new Rectangle(0, 0, newWidth, newHeight), new Rectangle(0, 0, oldWidth, oldHeight), GraphicsUnit.Pixel);
                         string newFileName = Path.GetFileNameWithoutExtension(FileName) + "_small" + Path.GetExtension(FileName);   //缩略图名称
                         string filePath = Server.MapPath("/uploadImg/") + newFileName;
                         bmp.Save(filePath);
                     }
                 }

             }
         }
         #endregion

    代码有很多需要改进的地方,希望大家多多指点。

    您可能感兴趣的文章:
    • C#(.net)水印图片的生成完整实例
    • asp.net(C#)使用QRCode生成图片中心加Logo或图像的二维码实例
    • c# .net 生成图片验证码的代码
    • C#动态生成PictureBox并指定图片的方法
    • C#生成条形码图片的简单方法
    • c#生成图片缩略图的类(2种实现思路)
    • C#实现的pdf生成图片文字水印类实例
    • c#生成自定义图片方法代码实例
    • C#实现在底图上动态生成文字和图片
    上一篇:IsPostBack原理的介绍
    下一篇:.NET中 关于脏读 不可重复读与幻读的代码示例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    c#多图片上传并生成缩略图的实例代码 多,图片,上传,并,生成,缩,