书生浏览器不能打开这个文件或者url_金蝶下载文件的三种方式

e95a1d778c4d9c83ff15c58f2ba5dafe.png

金蝶附件中,有一个下载功能,是金蝶自带的,点击下载会把所有文件全部都打包成一个压缩包下载下来,那么如果我们想自己做一个下载,有几种办法

第一种,输入需要下载的url,直接弹出浏览器下载

/// <summary>
        /// 打开一个窗口,窗口中包含一个链接:用户点击此链接打开URL地址
        /// </summary>
        private void OpenURLWindow(string url)
        {
            Kingdee.BOS.JSON.JSONArray jSONArray = new Kingdee.BOS.JSON.JSONArray();
            Kingdee.BOS.JSON.JSONObject jSONObject = new Kingdee.BOS.JSON.JSONObject();
            jSONObject.Put("url", System.Web.HttpUtility.UrlEncode(url)); // 需引用System.Web.dll
            jSONObject.Put("title", "下载");
            jSONArray.Add(jSONObject);
            // 要求前端,调用openUrlWindow方法,显示一个小窗口,窗口中包含一个Url链接
            this.View.AddAction("openUrlWindow", jSONArray);
            this.View.SendDynamicFormAction(this.View);
        }

第二种,输入要下载的url,直接弹出一个动态表单来下载

/// <summary>
        /// 打开一个窗口,在此窗口直接打开URL地址
        /// </summary>
        private void ShowKDWebBrowseForm(string url)
        {
            Kingdee.BOS.JSON.JSONObject webobj = new Kingdee.BOS.JSON.JSONObject();
            webobj["source"] = url;
            webobj["height"] = 545;
            webobj["width"] = 810;
            webobj["isweb"] = false;  //是否新弹出一个浏览器窗口(or选项卡)打开网页地址
            webobj["title"] = "下载";
            // 要求前端,调用ShowKDWebbrowseForm方法,显示指定的网页
            this.View.AddAction("ShowKDWebbrowseForm", webobj);
            this.View.SendDynamicFormAction(this.View);
        }

第三种,输入url,然后弹出一个提示,点击下载附件,点了就弹出浏览器下载(这个是金蝶原生下载就是这么做的)

private void DownLoadZipFile()
        {
            string _temppDirectory = System.Guid.NewGuid().ToString();
        //    string value = string.Concat(new string[]
        //    {
        //this._webapprooturl,
        //"/",
        //KeyConst.TEMPFILEPATH,
        //"/",
        //this._zipfilename
        //    });
            DynamicFormShowParameter dynamicFormShowParameter = new DynamicFormShowParameter();
            dynamicFormShowParameter.FormId = "BOS_FileDownLoad";
            //dynamicFormShowParameter.CustomParams.Add("url", value);
            dynamicFormShowParameter.CustomParams.Add("linktext", ResManager.LoadKDString("点击下载附件", "002014030028722", SubSystemType.BOS, new object[0]));
            this.View.ShowForm(dynamicFormShowParameter);
        }

我曾经遇到一个需求,就是要更改附件管理里面的下载功能,金蝶原生的下载功能,是把所有的文件打包然后下载下来,需求要我做到,选中单个文件,然后点击下载,只下载单个文件,还有一个就是选中多个文件,然后点击下载,把选中的多个文件打包,然后下载下来。

解决办法:直接去找到金蝶原生的下载功能源码,把源码反编译之后,了解金蝶是怎么做这个下载功能的,直接复制出来,改动一下就好了,前提是你要看懂逻辑。

681a53cdb8b31ad19b2ec697d3fcf09c.png

如果有需要下载功能扩展或者交流的,可以加我的微信公众号,楼梯间的男孩,我们一起讨论哦。发私信我都可以接到的呢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值