zoukankan      html  css  js  c++  java
  • 上传图片类代码

    using System;
    using System.Web;
    using System.Web.UI;
    using System.IO;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.Drawing.Drawing2D;
    using System.Text.RegularExpressions;

    namespace BaseProject.Classes.Util
    {
        public class UpLoad
        {
            /// <summary>
            /// 指定路径 图片大小
            /// </summary>
            /// <param name="dir"></param>
            /// <param name="width"></param>
            /// <param name="height"></param>
            /// <returns></returns>
            public string GetSqlFile(string dir, int width, int height)
            {
                string sqlfile = "";
                string path = HttpContext.Current.Request.PhysicalApplicationPath.ToString() + "upload/";
                path += dir;
                if (Directory.Exists(path))
                {

                }
                else
                {
                    Directory.CreateDirectory(path);
                }
                if (Directory.Exists(path + "/small"))
                {
                }
                else
                {
                    Directory.CreateDirectory(path + "/small");
                }
                HttpFileCollection files = HttpContext.Current.Request.Files;
                if (files[0].FileName.ToString().Length > 0)
                {
                  
                    string filename = files[0].FileName.ToString();
                    string datestr = new StringOperate().ConvertChineseCharacterToSpelling(Regex.Replace(filename, "[^\\u4e00-\\u9fa5]", ""))+DateTime.Now.ToString("yyyyMMddHmmfff") ;
                    string ext = filename.Substring(filename.LastIndexOf(".")).ToLower();
                    if (ext != ".bmp" && ext != ".jpg" && ext != ".gif" && ext != ".jpeg")
                    {
                        HttpContext.Current.Response.Write("<script>alert('上传的文件不是.gif,jpg,jpeg,bmp格式')</script>");
                        return "";
                    }
                    files[0].SaveAs(path + "/" + datestr + ext);
                    #region 生成小图
                    string originalFilename = path + "/" + datestr + ext;
                  
                    //缩小的倍数
                    int iScale = 1;
                    //从文件取得图片对象
                    Image image = null;
                    try
                    {
                        image = Image.FromFile(originalFilename);
                    }
                    catch
                    {
                        //
                        try
                        {
                            File.Delete(originalFilename);
                            image.Dispose();

                        }
                        catch
                        {
                        }
                        HttpContext.Current.Response.Write("<script>alert('上传的文件不是.gif,jpg,jpeg,bmp图片的标准格式格式')</script>");
                        return "";

                    }
                    int hi = 0;
                    int wi = 0;
                    wi = width;
                    hi = height;
                    Size size = new Size(wi, hi);
                    //新建一个bmp图片
                    Image bitmap = new Bitmap(size.Width, size.Height);
                    //新建一个画板
                    Graphics g = Graphics.FromImage(bitmap);
                    //设置高质量插值法
                    g.InterpolationMode = InterpolationMode.High;
                    //设置高质量,低速度呈现平滑程度
                    g.SmoothingMode = SmoothingMode.HighQuality;
                    //清空一下画布
                    g.Clear(Color.Blue);
                    //在指定位置画图
                    g.DrawImage(image, new Rectangle(0, 0, bitmap.Width, bitmap.Height), new Rectangle(0, 0, image.Width, image.Height), GraphicsUnit.Pixel);
                    if (ext == ".jpg" || ext == ".jpeg")
                        bitmap.Save(path + "/small/" + datestr + ext, ImageFormat.Jpeg);
                    if (ext == ".gif")
                        bitmap.Save(path + "/small/" + datestr + ext, ImageFormat.Gif);
                    if (ext == ".bmp")
                        bitmap.Save(path + "/small/" + datestr + ext, ImageFormat.Bmp);
                    image.Dispose();
                    bitmap.Dispose();
                    g.Dispose();
                    #endregion
                    sqlfile = datestr + ext;

                    try
                    {
                        image.Dispose();
                        bitmap.Dispose();
                        g.Dispose();
                    }
                    catch (Exception ex)
                    {
                        string exc = ex.Message.ToString();
                        HttpContext.Current.Response.Write("<script>alert('" + exc + "');</script>");
                    }
                }
                else
                {
                    sqlfile = "";
                }
                return sqlfile;
            }
            /// <summary>
            /// 指定路径 图片大小
            /// </summary>
            /// <param name="dir"></param>
            /// <param name="width"></param>
            /// <param name="height"></param>
            /// <returns></returns>
            public string GetSqlFileSmallImage(string dir, int width, int height)
            {
                string sqlfile = "";
                string path = HttpContext.Current.Request.PhysicalApplicationPath.ToString() + "upload/";
                path += dir;
                if (Directory.Exists(path))
                {

                }
                else
                {
                    Directory.CreateDirectory(path);
                }
                if (Directory.Exists(path + "/small"))
                {
                }
                else
                {
                    Directory.CreateDirectory(path + "/small");
                }
                HttpFileCollection files = HttpContext.Current.Request.Files;
                if (files[0].FileName.ToString().Length > 0)
                {
                    string filename = files[0].FileName.ToString();
                    string tempFileName = filename.Substring(filename.LastIndexOf('\\') + 1, filename.LastIndexOf('.') - (filename.LastIndexOf('\\') + 1));
                    string datestr = new StringOperate().ConvertChineseCharacterToSpelling(Regex.Replace(filename, "[^\\u4e00-\\u9fa5]", "")) + DateTime.Now.ToString("yyyyMMddHmmfff");
                    string ext = filename.Substring(filename.LastIndexOf(".")).ToLower();
                    if (ext != ".bmp" && ext != ".jpg" && ext != ".gif" && ext != ".jpeg")
                    {
                        HttpContext.Current.Response.Write("<script>alert('上传的文件不是.gif,jpg,jpeg,bmp格式')</script>");
                        return "";
                    }
                    files[0].SaveAs(path + "/" + datestr + ext);
                    #region 生成小图
                    string originalFilename = path + "/" + datestr + ext;
                  
                    //缩小的倍数
                    //int iScale = 1;
                    //从文件取得图片对象
                    Image image = null;
                    try
                    {
                        image = Image.FromFile(originalFilename);
                    }
                    catch
                    {
                        //
                        try
                        {
                            File.Delete(originalFilename);
                            image.Dispose();

                        }
                        catch
                        {
                        }
                        HttpContext.Current.Response.Write("<script>alert('上传的文件不是.gif,jpg,jpeg,bmp图片的标准格式格式')</script>");
                        return "";

                    }
                    int hi = 0;
                    int wi = 0;
                    wi = width;
                    hi = height;
                    Size size = new Size(wi, hi);
                    //新建一个bmp图片
                    Image bitmap = new Bitmap(size.Width, size.Height);
                    //新建一个画板
                    Graphics g = Graphics.FromImage(bitmap);
                    //设置高质量插值法
                    g.InterpolationMode = InterpolationMode.High;
                    //设置高质量,低速度呈现平滑程度
                    g.SmoothingMode = SmoothingMode.HighQuality;
                    //清空一下画布
                    g.Clear(Color.Blue);
                    //在指定位置画图
                    g.DrawImage(image, new Rectangle(0, 0, bitmap.Width, bitmap.Height), new Rectangle(0, 0, image.Width, image.Height), GraphicsUnit.Pixel);
                    if (ext == ".jpg" || ext == ".jpeg")
                        bitmap.Save(path + "/small/" + datestr + ext, ImageFormat.Jpeg);
                    if (ext == ".gif")
                        bitmap.Save(path + "/small/" + datestr + ext, ImageFormat.Gif);
                    if (ext == ".bmp")
                        bitmap.Save(path + "/small/" + datestr + ext, ImageFormat.Bmp);
                    image.Dispose();
                    bitmap.Dispose();
                    g.Dispose();
                    #endregion
                    sqlfile = datestr + ext;

                    try
                    {
                        image.Dispose();
                        bitmap.Dispose();
                        g.Dispose();
                        System.IO.File.Delete(path + "/" + datestr + ext);
                    }
                    catch (Exception ex)
                    {
                        string exc = ex.Message.ToString();
                        HttpContext.Current.Response.Write("<script>alert('" + exc + "');</script>");
                    }
                }
                else
                {
                    sqlfile = "";
                }
                return sqlfile;
            }

        }
    }

  • 相关阅读:
    CocoaPods入门到精通
    SDAutoLayout 一行代码搞定自动布局
    iOS 开发实践之Auto Layout(From Vincent Sit)
    web前端开发_清除浮动
    转 使用Autolayout xib实现动态高度的TableViewCell
    有了Auto Layout,为什么你还是害怕写UITabelView的自适应布局?
    Objective-C 相关Category2
    Objective-C 相关Category
    Mac 破解Adobe Photoshop CS6
    leetcode@ [315/215] Count of Smaller Numbers After Self / Kth Largest Element in an Array (BST)
  • 原文地址:https://www.cnblogs.com/bestsaler/p/1835704.html
Copyright © 2011-2022 走看看