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

作者:互联网   出处:控件中国网   2014-11-05 19:05:01   阅读:1

图片上传判断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);

 

Copyright© 2006-2015 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 渝ICP备12000264号 法律顾问:元炳律师事务所
客服软件
live chat