zoukankan      html  css  js  c++  java
  • 项目配置文件虚拟路径

    //配置文件

    项目当前地址+虚拟路径地址 

    <add key="SaveFilePath" value="E:项目代码研发部zzjz源码Hzjg.AutoBulidSiteHzjg.AutoBulidSite.Webfilesinfopic"/> 

    protected void Page_Load(object sender, EventArgs e)
            {
                try
                {
                    string sPathOld = "";
                    string sPathNew = "";
                    bool isSuccess = false;
                    //虚拟路径
                    string ficPath = "";
                    //返回图片存放地址
                    Hashtable hash = new Hashtable();
                    #region 附件信息
                    HttpFileCollection files = Request.Files;
                    for (int j = 0; j < files.Count; j++)
                    {
                        var file = files[j];
                        if (!string.IsNullOrEmpty(file.FileName))
                        {
                            try
                            {
                                string keyid = Request.QueryString["keyid"];
                                if (!string.IsNullOrWhiteSpace(keyid))
                                {
                                    #region 上传图片,并返还地址
                                    //组合虚拟路径
                                    ficPath = "/files/infopic/" + DateTime.Now.Year.ToString() + "/" + DateTime.Now.Month.ToString() + "/" + DateTime.Now.Day.ToString() + "/" + keyid + Path.GetExtension(file.FileName);
                                    //旧的物理路径
                                    sPathOld = Hzjg.Common.Config.ConfigManage.fGetAppConfig("SaveFilePath") + DateTime.Now.Year.ToString() + "\" + DateTime.Now.Month.ToString() + "\" + DateTime.Now.Day.ToString() + "\old" + keyid + Path.GetExtension(file.FileName);
                                    string sPath = Path.GetDirectoryName(sPathOld);
                                    if (!Directory.Exists(sPath))
                                    {
                                        Directory.CreateDirectory(sPath);
                                    }
                                    file.SaveAs(sPathOld);
                                    //压缩过的图片,新的物理路径
                                    sPathNew = Hzjg.Common.Config.ConfigManage.fGetAppConfig("SaveFilePath") + DateTime.Now.Year.ToString() + "\" + DateTime.Now.Month.ToString() + "\" + DateTime.Now.Day.ToString() + "\" + keyid + Path.GetExtension(file.FileName);
                                    isSuccess = GetPicThumbnail(sPathOld, sPathNew, 500, 500, 80);
                                    File.Delete(sPathOld);
                                    #endregion
                                }
                            }
                            catch (Exception ex) { }
                        }
                    }
                    #endregion
                    if (isSuccess)
                    {
                        hash["PHOTOID"] = ficPath;
                    }
                    else
                    {
                        hash["PHOTOID"] = "";
                    }
                    Response.AddHeader("Content-Type", "text/html; charset=UTF-8");
                    Response.Write(Hzjg.GlobalExpand.ToJson(hash));
                }
                catch (Exception ex)
                {
                    Hzjg.Common.Utility.Log.fWriterLog("信息图片上传操作页面加载出错", ex);
                }
            }
            #region 无损压缩图片
            /// <summary>
            /// 无损压缩图片
            /// </summary>
            /// <param name="sFile">原图片</param>
            /// <param name="dFile">压缩后保存位置</param>
            /// <param name="dHeight">高度</param>
            /// <param name="dWidth">宽度</param>
            /// <param name="flag">压缩质量 1-100</param>
            /// <returns></returns>
            public bool GetPicThumbnail(string sFile, string dFile, int dHeight, int dWidth, int flag)
            {
                System.Drawing.Image iSource = System.Drawing.Image.FromFile(sFile);
                ImageFormat tFormat = iSource.RawFormat;
                int sW = 0, sH = 0;
                //按比例缩放
                Size tem_size = new Size(iSource.Width, iSource.Height);
                if (tem_size.Width > dHeight || tem_size.Width > dWidth)
                {
                    if ((tem_size.Width * dHeight) > (tem_size.Height * dWidth))
                    {
                        sW = dWidth;
                        sH = (dWidth * tem_size.Height) / tem_size.Width;
                    }
                    else
                    {
                        sH = dHeight;
                        sW = (tem_size.Width * dHeight) / tem_size.Height;
                    }
                }
                else
                {
                    sW = tem_size.Width;
                    sH = tem_size.Height;
                }
                Bitmap ob = new Bitmap(dWidth, dHeight);
                Graphics g = Graphics.FromImage(ob);
                g.Clear(Color.WhiteSmoke);
                g.CompositingQuality = CompositingQuality.HighQuality;
                g.SmoothingMode = SmoothingMode.HighQuality;
                g.InterpolationMode = InterpolationMode.HighQualityBicubic;
                g.DrawImage(iSource, new Rectangle((dWidth - sW) / 2, (dHeight - sH) / 2, sW, sH), 0, 0, iSource.Width, iSource.Height, GraphicsUnit.Pixel);
                g.Dispose();
                //以下代码为保存图片时,设置压缩质量
                EncoderParameters ep = new EncoderParameters();
                long[] qy = new long[1];
                qy[0] = flag;//设置压缩的比例1-100
                EncoderParameter eParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, qy);
                ep.Param[0] = eParam;
                try
                {
                    ImageCodecInfo[] arrayICI = ImageCodecInfo.GetImageEncoders();
                    ImageCodecInfo jpegICIinfo = null;
                    for (int x = 0; x < arrayICI.Length; x++)
                    {
                        if (arrayICI[x].FormatDescription.Equals("JPEG"))
                        {
                            jpegICIinfo = arrayICI[x];
                            break;
                        }
                    }
                    if (jpegICIinfo != null)
                    {
                        ob.Save(dFile, jpegICIinfo, ep);//dFile是压缩后的新路径
                    }
                    else
                    {
                        ob.Save(dFile, tFormat);
                    }
                    return true;
                }
                catch
                {
                    return false;
                }
                finally
                {
                    iSource.Dispose();
                    ob.Dispose();
                }
            }
            #endregion
  • 相关阅读:
    (Java实现) 洛谷 P1603 斯诺登的密码
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1028 数的计算
    (Java实现) 洛谷 P1028 数的计算
    (Java实现) 洛谷 P1553 数字反转(升级版)
    8.4 确定两个日期之间的月份数或年数
    (Java实现) 洛谷 P1553 数字反转(升级版)
  • 原文地址:https://www.cnblogs.com/zecVip/p/5783362.html
Copyright © 2011-2022 走看看