下载附件
更新时间: 2024-11-25 浏览次数: {{ hits }}

请求方式: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){

//调用后端代码处理下载附件逻辑。

    }