二开案例.表单插件.文件上传限制个数
【场景】文件上传时限制个数,仅适用于文件上传控件,针对其他附件文件服务器,附件数据库等既定的由平台实现的逻辑不能干预
【案例】上传多个文件时,服务端能够判断个数给客户提示(最终还是需要客户手动删除多余文件)
[文件上传逻辑](https://wenku.my7c.com/article/119433960857351680?productLineId=1&isKnowledge=2)
增加判断上传个数
```csharp
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.JSON;
using Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
namespace DynamicFormPlugIn.Attachment
{
[Kingdee.BOS.Util.HotUpdate]
public class LimitFileCountPlugIn : AbstractDynamicFormPlugIn
{
const string FileUploadServicesDir = "FileUploadServices/UploadFiles";
const string FieldKey = "F_BHR_FileUpdate";
public override void CustomEvents(CustomEventsArgs e)
{
base.CustomEvents(e);
if (!string.Equals(FieldKey, e.Key, StringComparison.OrdinalIgnoreCase))
return;
// 设置上传控件参数
this.View.GetControl(FieldKey).SetCustomPropertyValue("NeedCallback", true);
this.View.GetControl(FieldKey).SetCustomPropertyValue("IsRequesting", false);
if (!string.Equals("FileChanged", e.EventName, StringComparison.OrdinalIgnoreCase))
return;
// 文件上传完毕
var postData = KDObjectConverter.DeserializeObject<JSONObject>(e.EventArgs);
if (postData == null)
return;
var uploadInfo = new JSONArray(postData["NewValue"].ToString());
if (uploadInfo.Count > 0)
{
if (uploadInfo.Count > 3)
{
//实际上文件已经上传到应用服务器对应目录,但是只是不做后续处理,如跟单据关联之类
this.View.ShowErrMessage("上传文件大于3个,不支持处理后续逻辑");
}
// 取上传的文件名
var fileInfo = uploadInfo[0] as Dictionary<string, object>;
if (fileInfo != null)
{
var fileName = fileInfo["ServerFileName"].ToString();
var physicalPath = PathUtils.GetPhysicalPath(FileUploadServicesDir, fileName);
this.View.ShowMessage("文件上传成功,存放路径:" + physicalPath);
}
}
}
}
}
```
【效果】如果上传多个,可以给操作员警告,后续的业务逻辑就不执行即可;满足条件时才做后续的逻辑
![Image_20221214104719.webp](/download/0100f8b237f0eb1d4561ab9934352bee33a4.webp)
【缺陷】最终是在服务端判断,文件已上传到服务端,占用了上传的流量,前端无法干预实现此功能
二开案例.表单插件.文件上传限制个数
【场景】文件上传时限制个数,仅适用于文件上传控件,针对其他附件文件服务器,附件数据库等既定的由平台实现的逻辑不能干预【案例】上传多...
点击下载文档
本文2024-09-16 18:34:34发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-23041.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章