请求方式:POST(HTTPS)
请求地址:https://www.h3yun.com/Api/DownloadBizObjectFile
参数说明:
参数 | 参数类型 | 必须 | 说明 |
attachmentId | String | 是 | 附件id |
EngineCode | String | 是 | 企业引擎 |
请求示例(C#):
GetFile("fa5a96d4-559c-46c0-9dcc-dcb6e427a94c");//调用下载附件方法,传递参数:附件id
public static void GetFile(string fileId) { HttpClient client = new HttpClient();
//form-data:attachmentId、EngineCode Dictionary<string, string> keyValues = new Dictionary<string, string>(); keyValues.Add("attachmentId", fileId); keyValues.Add("EngineCode", ""); //身份认证参数 FormUrlEncodedContent content = new FormUrlEncodedContent(keyValues); content.Headers.Add("EngineCode", ""); content.Headers.Add("EngineSecret", ""); //请求执行 HttpResponseMessage result = client.PostAsync("https://www.h3yun.com/Api/DownloadBizObjectFile", content).Result; Stream responseStream = result.Content.ReadAsStreamAsync().Result;
var header = result.Content.Headers.GetValues("Content-Disposition");//附件名称 string[] dd = header.ToArray(); Console.WriteLine(header); //创建本地文件 Stream stream = new FileStream(dd[0], FileMode.Create); byte[] bArr = new byte[1024]; int size = responseStream.Read(bArr, 0, bArr.Length); while (size > 0) { stream.Write(bArr, 0, size); size = responseStream.Read(bArr, 0, bArr.Length); } stream.Close(); FileStream ddd = new FileStream(dd[0], FileMode.Open); var fd = ddd.Length; byte[] bytes = new byte[fd];
ddd.Read(bytes, 0, Convert.ToInt32(fd)); ddd.Close(); responseStream.Close(); } |
注意事项:
如果表单中有上传附件操作,或者列表自定义代码有上传附件操作;并且该接口在表单提交的OnSubmit或者列表中的OnSubmit中被调用,去下载提交动作中上传的附件。需要注意OnSubmit的事务没有提交时,该openapi接口读取的附件信息是临时的,而OnSubmit中处理附件时会删除临时文件,该openapi接口是无法下载附件。也就是说必须要等表单或列表提交完成后才能下载附件。
如果有场景必须要在提交过程中下载刚上传的附件,可以在表单前端代码中写下载附件的逻辑。例如,
// 提交后事件
AfterSubmit:function(action, responseValue){
//调用后端代码处理下载附件逻辑。
}