二开案例.表单插件.文件上传

【注意】最新版中,本文中的文件上传控件已更名为附件控件。
【应用场景】使用文件上传控件上传文件到应用服务器。


【案例演示】创建动态表单,使用文件上传控件,将文件上传到应用服务器。
【实现步骤】
<1>编写表单插件,代码如下。
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.JSON;
using Kingdee.BOS.Util;
using System.Collections.Generic;
using System.ComponentModel;
namespace Jac.XkDemo.BOS.Business.PlugIn
{
/// <summary>
/// 【表单插件】文件上传
/// </summary>
[Description("【表单插件】文件上传"), HotUpdate]
public class FileUploadFormPlugIn : AbstractDynamicFormPlugIn
{
/// <summary>
/// 文件上传指定目录(应用服务器)
/// </summary>
const string FileUploadServicesDir= "FileUploadServices/UploadFiles";
/// <summary>
/// 文件上传过程中会多次触发自定义事件
/// </summary>
/// <param name="e"></param>
public override void CustomEvents(CustomEventsArgs e)
{
base.CustomEvents(e);
if (e.Key.EqualsIgnoreCase("F_Jac_FileUpload"))
{
// 设置上传控件参数
this.View.GetControl("F_Jac_FileUpload").SetCustomPropertyValue("NeedCallback", true);
this.View.GetControl("F_Jac_FileUpload").SetCustomPropertyValue("IsRequesting", false);
if (e.EventName.EqualsIgnoreCase("FileChanged"))
{
// 文件上传完毕
var postData = KDObjectConverter.DeserializeObject<JSONObject>(e.EventArgs);
if (postData != null)
{
var uploadInfo = new JSONArray(postData["NewValue"].ToString());
if (uploadInfo.Count > 0)
{
// 取上传的文件名
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);
}
}
}
二开案例.表单插件.文件上传
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



