控件中国网现已改版,您看到的是老版本网站的镜像,系统正在为您跳转到新网站首页,请稍候.......
中国最专业的商业控件资讯网产品咨询电话:023-67870900 023-67871946
产品咨询EMAIL:SALES@COMPONENTCN.COM

图片上传判断width 等比例压缩

作者:佚名 出处:互联网 2011年01月19日 阅读:

图片上传判断width 等比例压缩
 
HttpPostedFile oFile = Request.Files["NewFile"];

      // Check if the file has been correctly uploaded
      if (oFile == null || oFile.ContentLength == 0 || !(Convert.ToInt32(HttpContext.GetGlobalResourceObject("SystemInfo", "OpenFileup")) == 1))
      {
       SendResults(202);
       return;
      }

      int iErrorNumber = 0;
      string sFileUrl = "";

      // Get the uploaded file name.
      string sFileName = System.IO.Path.GetFileName(oFile.FileName).Substring(System.IO.Path.GetFileName(oFile.FileName).LastIndexOf(".") + 1).ToLower();
      string TypeName = HttpContext.GetGlobalResourceObject("SystemInfo", "UpfileTypeSettings").ToString();

       if (!TypeName.Contains(sFileName) ||
       oFile.ContentLength >= Convert.ToInt32(HttpContext.GetGlobalResourceObject("SystemInfo", "MaxFileLengthSettingsKB")) * 1024)
       //文件类型判断  文件大小验证
       {
        SendResults(202);
        return;
       }

           

        int iCounter = 0;

        while (true)
        {
         //判断文件是否可以上传
         if (CheckUploadFileExtension(sFileName))
        {
        string sFilePath = System.IO.Path.Combine(this.UserFilesDirectory, sFileName);

        if (System.IO.File.Exists(sFilePath))
        {
         iCounter++;
         sFileName =
             System.IO.Path.GetFileNameWithoutExtension(oFile.FileName) +
             "(" + iCounter + ")" +
              System.IO.Path.GetExtension(oFile.FileName);

          iErrorNumber = 201;
         }
         else
         {
          if (TypeName.Contains(".gif") || TypeName.Contains(".jpg") || TypeName.Contains("bmp") || TypeName.Contains("png"))
         {
          System.Drawing.Image image = System.Drawing.Image.FromStream(oFile.InputStream);

          int width = image.Width;
          int height = image.Height;

          int max = Convert.ToInt32(HttpContext.GetGlobalResourceObject("SystemInfo", "ImageMaxWidth"));
          if (width > max)
           {
            try
            {
             System.Drawing.Image newPic; //定义新位图对象
             //String picPath = path + userID + time + fileExtension;
             if (width > height)
              {
               newPic = new Bitmap(image, max, height * max / width); //缩放
              }
             else
             {
              newPic = new Bitmap(image, width * max / height, max); //缩放
             }
             newPic.Save(sFilePath, System.Drawing.Imaging.ImageFormat.Bmp); //将处理后的图片保存成bmp文件
             sFileUrl = this.UserFilesPath + sFileName;
             break;
            }
             catch
             {
             }
            }
           }

           oFile.SaveAs(sFilePath);
           sFileUrl = this.UserFilesPath + sFileName;
           break;
             }
           }
           else
                {
                    //不允许上传
                    SendResults(202);
                    break;
                }
            }

            SendResults(iErrorNumber, sFileUrl, sFileName);

 

热推产品

  • ActiveReport... 强大的.NET报表设计、浏览、打印、转换控件,可以同时用于WindowsForms谀坔攀戀Forms平台下......
  • AnyChart AnyChart使你可以创建出绚丽的交互式的Flash和HTML5的图表和仪表控件。可以用于仪表盘的创......
首页 | 新闻中心 | 产品中心 | 技术文档 | 友情连接 | 关于磐岩 | 技术支持中心 | 联系我们 | 帮助中心 Copyright-2006 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 电话:023 - 67870900 传真:023 - 67870270 产品咨询:sales@componentcn.com 渝ICP备12000264号 法律顾问:元炳律师事务所 重庆市江北区塔坪36号维丰创意绿苑A座28-5 邮编:400020
在线客服
在线客服系统
在线客服
在线客服系统