• C# 缩略图(有问题)请大家帮忙,谢谢,我没有分给


    希望帮我看看,为什么我以上传图片,生成缩略图,这个图片就被IIS占用了,改怎么修改。求

    //aspx.cs文件

    Boolean fileOK = false;
    String fileExtension = System.IO.Path.GetExtension(FileUpload_img.FileName).ToLower();
    String[] allowedExtensions =  { ".jpg" };
    for (int i = 0; i < allowedExtensions.Length; i++)
    {
        if (fileExtension == allowedExtensions[i])
        {
            fileOK = true;
        }
    }
    if (fileOK)
    {
        try
        {

            string path_BigPic = md5code.UploadFilePic(this.FileUpload_img, ref Path_SmlPic);
            return path_BigPic;
        }
        catch (Exception ex)
        {
        }
    }
    else
    {
        this.RegisterStartupScript("jpg", "<script>alert('格式不正确!暂只支持 jpg 格式')</script>");
        return "-1";
    }

    ********************************

    //调用的cs文件

    public string UploadFilePic(FileUpload fu, ref string path_xiao)
    {

        if (fu == null)
        {
            return "-1";
        }

        string pathdatu = HttpContext.Current.Server.MapPath("../UploadFiles/BigPic/");

     

        //获得客户端的文件物理路径
        string clientFileName = fu.PostedFile.FileName;


        //获得文件的后缀名称
        string extension = System.IO.Path.GetExtension(clientFileName);

     


        //得到一个   年月日+4位随机数   的字符串 作为 图片文件名
        string fileName = DateTime.Now.ToString("yyyyMMddhhmmss") + new Random().Next(1000, 9999).ToString();

        //判断文件夹是否存在
        if (!System.IO.Directory.Exists(pathdatu))
        {
            //创建文件夹
            System.IO.Directory.CreateDirectory(pathdatu);
        }

        if (!System.IO.Directory.Exists(pathdatu))
        {
            //系统异常,如:硬盘空间不够
            //写日志

            return "0";
        }

        string path = pathdatu + fileName + extension;
        fu.PostedFile.SaveAs(path);
       
        System.Drawing.Image image_da = System.Drawing.Image.FromFile(path);

        System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(image_da);

        int oWidth = image_da.Width; //原图宽度
        int oHeight = image_da.Height; //原图高度

        int tWidth = 152; //设置缩略图初始宽度
        int tHeight = 152; //设置缩略图初始高度

        //按比例计算出缩略图的宽度和高度
        if (oWidth >= oHeight)
        {
            tHeight = (int)Math.Floor(Convert.ToDouble(oHeight) * (Convert.ToDouble(tWidth) / Convert.ToDouble(oWidth)));
        }
        else
        {
            tWidth = (int)Math.Floor(Convert.ToDouble(oWidth) * (Convert.ToDouble(tHeight) / Convert.ToDouble(oHeight)));
        }

        //生成缩略原图
        Bitmap tImage = new Bitmap(tWidth, tHeight);

        g = Graphics.FromImage(tImage);
        g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; //设置高质量插值法
        g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;//设置高质量,低速度呈现平滑程度
        g.Clear(Color.Transparent); //清空画布并以透明背景色填充
        g.DrawImage(image_da, new Rectangle(0, 0, tWidth, tHeight), new Rectangle(0, 0, oWidth, oHeight), GraphicsUnit.Pixel);

        string tname = DateTime.Now.ToShortDateString().Replace("-", "") + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString() + ".jpg";

        string xiaotupath = HttpContext.Current.Server.MapPath("../UploadFiles/SmlPic/");  //小图

        string tFullName = xiaotupath + "t" + tname; //保存缩略图的物理路径

        try
        {
            //以JPG格式保存图片 ------ 保存小图文件

            tImage.Save(tFullName, System.Drawing.Imaging.ImageFormat.Jpeg);
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            //释放资源

            System.GC.Collect();   //关键就在这句(如果不加,上传的图片就会被IIS进程占用)
            fu.Dispose();
            image_da.Dispose();
            g.Dispose();
            tImage.Dispose();
        }

        path_xiao = "../UploadFiles/SmlPic/t" + tname;
        return "../UploadFiles/BigPic/" + fileName + extension;
    }

  • 相关阅读:
    pycharm中将文件目录标记为sources root和sys.path.append()效果一样
    简单的股票信息查询系统 1 程序启动后,给用户提供查询接口,允许用户重复查股票行情信息(用到循环) 2 允许用户通过模糊查询股票名,比如输入“啤酒”, 就把所有股票名称中包含“啤酒”的信息打印出来 3 允许按股票价格、涨跌幅、换手率这几列来筛选信息, 比如输入“价格>50”则把价格大于50的股票都打印,输入“市盈率<50“,则把市盈率小于50的股票都打印,不用判断等于。
    添加jar到本地maven库
    jquery.qrcode中文乱码的解决终极办法
    easyUI datagrid view扩展
    CANNOT READ PROPERTY ‘opera’ OF UNDEFINED解决方法
    关于 Promise 的一些简单理解
    Java 内功修炼 之 数据结构与算法(一)
    学习一下 JVM (三) -- 了解一下 垃圾回收
    学习一下 JVM (二) -- 学习一下 JVM 中对象、String 相关知识
  • 原文地址:https://www.cnblogs.com/binlunia/p/11267795.html
Copyright © 2020-2023  润新知