PLM文档上传分为数据库数据录入和物理文件上传至电子仓两步。电子仓根据FFILEID首字母确定存储位置,文件名包含Data、FFILEID和.PDM.pure后缀。Http上传接口提供文件流上传,支持断点续传,上传后生成压缩副本。上传接口需指定编码、文件ID、文件名等参数,并可选择是否压缩、是否仅放缓存区。大文档上传需调整电子仓配置,且2023年11月后补丁增强了安全性。
PLM 文档上传主要分两步操作:
一是录入数据库数据:PLM 文档上传说明(数据库处理部分) (kingdee.com)
二是上传物理文件到电子仓(文档服务器)(此贴)
电子仓说明
物理文件在电子仓的存储位置是根据 FFILEID 的首字母来的。
例如 FFILEID 为 e782f464-c5fe-4d08-83b6-193e3fc3ab24 则将物理文件放到 电子仓路径的E文件夹下,并将物理文件命名为 Data+FFILEID+.PDM.pure 例如:Datae782f464-c5fe-4d08-83b6-193e3fc3ab24.PDM.pure
关于pure
1、有pure后缀是指没经过压缩加密的文件,通过PLM系统上传的都是经过压缩加密的。
2、通过http接口上传的客户端不使用压缩加密,上传到电子仓后才会进行压缩生成一份压缩的副本。因此http上传后会看到两份文档,一份有pure后缀一份没有。
Http上传物理文件流
接口简介
将文件流上传到电子仓(文件服务器)
接口详情
请求地址
http://{物理文档服务器地址}/Upload,
如 http://localhost/CloudPLMWarehouse/Upload
请求类型
POST
请求头
参数 | 必填 | 编码 | 说明 |
CTX | Y | base64 | FTP上下文,格式:LoginUrl=http://{星空站点URL}/&UserToken={凭证}&LoginType=1 |
token | Y | 无 | 凭证,GUID格式 |
FileID | Y | base64 | 文件ID |
FileName | Y | base64 | 文件名 |
TempFileName | Y | base64 | 电子仓缓存区临时文件名 |
FileHash | Y | base64 | 文档hash值,用来校验电子仓文档的hash值是否跟当前hash值一致,一致则表示上传完毕 |
TotalLength | Y | base64 | 要传输的字节数 |
Offset | N | base64 | 偏移值,即文件中的位置,将从该位置开始将内容写入到 HTTP 输出中。为空时即从头开始。(断点续传使用) |
PLM_ACCESS_TYPE | Y | 无 | 值为“pure”时获取不压缩的文档,否则默认获取压缩的文档的流 |
PLM_TRANSFER_MODE | Y | 无 | 值为 “1”,一定要此参数,传输以非压缩方式传输,否则上传的文档无法从PLM系统中下载 |
OnlyCache | N | base64 | 是否只放到缓存区 |
Postman示例:
返回参数说明
异常:返回错误信息,格式为 “[Base64]{base64编码的内容}[/Base64]”(在 HttpResponse.StatusDescription 中)
大文档上传可根据需要修改电子仓(文件服务器)的web.config
附件为简单的代码DEMO(只作示例参考,请根据实际需求自行改造开发)
PS:2023年11月后的补丁添加了安全相关的内容,部分demo需要按照以下帖子做出修改:
PLM 文档上传说明(Http上传物理文档部分)【2023年11月补丁版本】 (kingdee.com)
HttpUploadDemo.rar(3.12KB)
推荐阅读