NetCMS修改之二:单击新闻附件,直接打开文件

    NetCMS系统的新闻附件,是通过down.aspx页面实现下载附件的。这样做的好处可能是可以隐藏附件的真实地址,但给用户使用会带来一个小麻烦:无法使用右键单击来实现将下载的文件另存为。

    经检查,此功能是在NetCMS.Publish命名空间的LabelMass类中定义的getNewsFiles实现的,文件位于NetCMS.Publish/Label/NewsParameter.cs。原来是这样定义的:

        /// <summary>
        /// 取得附件地址
        /// </summary>
        /// <param name="NewsID">新闻编号</param>
        /// <returns>返回附件地址</returns>
        protected string getNewsFiles(string NewsID, int NewsTF)
        {
            string str = "";
            IDataReader rd = CommonData.DalPublish.GetNewsFiles(NewsID);
            while (rd.Read())
            {
                str += "<div><a href=/"" + CommonData.SiteDomain + "/down-" + rd["id"].ToString() + ".aspx/">" + rd["URLName"].ToString() + "</a></div>";
            }
            rd.Close();
            return str;
        }

很明显可以看出,生成的html页面的链接是down.aspx页面。现将其改为如下:

        /// <summary>
        /// 取得附件地址
        /// </summary>
        /// <param name="NewsID">新闻编号</param>
        /// <returns>返回附件地址</returns>
        protected string getNewsFiles(string NewsID, int NewsTF)
        {
            string str = "";
            IDataReader rd = CommonData.DalPublish.GetNewsFiles(NewsID);
            while (rd.Read())
            {
                string DownAdress = rd["FileUrl"].ToString().ToLower();
                DownAdress = DownAdress.Replace("{@dirfile}", NetCMS.Config.UIConfig.dirFile);
                DownAdress = DownAdress.Replace("{@dirtemplet}", NetCMS.Config.UIConfig.dirTemplet);
                string dimm = NetCMS.Config.UIConfig.dirDumm;
                if (dimm.Trim() != string.Empty)
                {
                    dimm = "/" + dimm;
                }
                DownAdress = dimm + DownAdress;

                str += "<div><a href=/"" + CommonData.SiteDomain + "/" + DownAdress + "/">" + rd["URLName"].ToString() + "</a></div>";
            }
            rd.Close();
            return str;
        }

    编译之后,将NetCMS.Web/Bin文件夹生成的NetCMS.Publish.dll复制到服务器的发行目录下,就可以了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值