NC附件管理

在5系列中,处理NC附件需要使用JDK工具进行压缩后再保存,以防止出现乱码问题。需手动更新单据的附件字段。6系列涉及附件查询的SQL,通过连接多个表来获取附件数据。此外,还介绍了如何通过上传接口和调用FileManageServlet进行外部文件上传,并提供了相关参数设置和方法引用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

5系列

就是要注意对附件,使用jdk自带工具,进行压缩后保存(否则nc端打开附件会出现乱码)

	AttachmentVO attachmentVO = new AttachmentVO();
	attachmentVO.setPk_corp(info.getString("pk_corp"));
	attachmentVO.setPk_user(info.getString("pk_user"));
	attachmentVO.setUpload_date(new UFDate());
	attachmentVO.setAttachment_name(strFileName);
	attachmentVO.setPk_object(billid);
	attachmentVO.setObject_type("hi_stapplyb_h");
	
	attachmentVO.setView_times(Integer.valueOf(0));
	attachmentVO.setStatus(2);

	int iAttachmentSize = iFileLength / 1024;
	attachmentVO.setAttachment_size(Integer.valueOf(iAttachmentSize != 0 ? iAttachmentSize : 1));      
	attachmentVO.setAttachment(parseByte);

	PubDelegator.getIAttachment().upload(attachmentVO);

注意单据的附件字段值需要自己进行跟新

具体的方法可参考AttachmentDialog

6系列

进行附件查询的伪sql(版本差异略有不同,但数据库表就是以下几张了):
select sm_filestoreview.FILEDATA from
SM_PUB_FILESYSTEM.pk_doc = sm_document_fil

<think>好的,用户的问题是关于如何通过用友NC65实现附件上传的功能。首先,我需要回忆一下用友NC65的相关知识,尤其是附件管理的部分。根据用户提供的引用内容,特别是引用[2]中提到的附件管理相关的代码片段,可以看出NC65使用了特定的Action类来处理附件上传,即`FileDocManageAction`。 接下来,我需要确认用户的需求。用户可能希望了解如何在NC65系统中实现文件上传,包括前端和后端的配置。根据引用[2],前端需要在卡片界面和列表界面添加相应的按钮或入口,后端则需要配置对应的bean来处理文件上传的逻辑。此外,引用[1]提到附件在线预览插件支持多种格式,这可能与上传后的文件处理有关,但用户当前的问题更侧重于上传功能本身。 另外,引用[3]提到NC存在文件上传漏洞,这提醒我在回答时需要强调安全性,确保用户的上传功能不会引入安全风险,比如限制上传文件类型、检查文件内容等。 接下来,我需要整理实现附件上传的具体步骤。首先,前端需要添加触发附件管理的按钮,可能需要使用`FileDocManageAction`。然后,后端配置相关的bean,并关联到模型和异常处理。同时,上传后的文件需要存储到指定的目录,并记录元数据到数据库,这可能涉及`sm_userdoc`表。 可能还需要考虑权限控制,确保只有授权用户才能上传文件,以及文件大小和类型的限制。此外,引用[1]提到的在线预览功能可能需要在文件上传后进行集成,但用户的问题没有明确提到这一点,所以暂时可能不需要深入,但可以作为附加信息提及。 最后,需要提醒用户注意安全性,避免任意文件上传漏洞,如引用[3]所述。建议用户参考官方文档或联系技术支持,确保实现方法符合最佳实践,并定期更新系统补丁。 总结回答的结构应该是分步骤说明前端配置、后端配置、存储与数据库处理,以及安全注意事项。同时,生成的相关问题可以涵盖插件扩展、安全措施和附件管理的高级功能,帮助用户进一步了解相关知识。</think>在NC65中实现附件上传功能需要结合前端界面配置和后端文件管理逻辑,以下是具体实现方法: ### 一、前端界面配置 1. **在卡片/列表界面添加操作按钮** ```xml <!-- 在界面XML中添加附件管理按钮 --> <action ref="fileAction" /> ``` 需要将`FileDocManageAction`绑定到界面模型,如引用[2]的配置: ```xml <bean id="fileAction" class="nc.ui.pubapp.uif2app.actions.FileDocManageAction"> <property name="model" ref="bmModel" /> <property name="exceptionHandler" ref="exceptionHandler"/> </bean> ``` ### 二、后端文件处理 1. **文件存储配置** - 上传文件默认存储在$DOMAIN_HOME/upfiles目录 - 通过`sm_userdoc`表记录附件元数据(文件名、路径、关联单据等) 2. **格式支持** 支持$doc$、$docx$、$xls$、$pdf$等格式,如引用[1]所述支持8种常见格式 ### 三、安全注意事项 需在`web.xml`中配置文件类型过滤,避免引用[3]提到的任意文件上传漏洞: ```xml <filter> <filter-name>FileTypeFilter</filter-name> <filter-class>nc.filter.FileTypeFilter</filter-class> </filter> ``` ### 四、功能扩展 通过实现`IFileUploadProcessor`接口可自定义文件处理逻辑: ```java public class CustomFileProcessor implements IFileUploadProcessor { @Override public void processUploadFile(File file) { // 自定义处理逻辑 } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值