IRIS中实现zip文件的下载、解压及读取
0 前言
项目上做对账需求时,需要通过http方式下载第三方的对账的文件,是一个压缩文件,里边包含一个csv文件。
1 准备工作
1.1 安装解压缩软件
需要根据cache/iris服务器运行环境安装不同的解压缩软件。 本文是在windows环境下实现的,安装了WinRAR解压缩软件,安装目录为:”C:\Program Files\WinRAR“。
1.2 部署测试http服务器
部署一个web服务器,放一个zip文件。 本文在macOS系统中使用MAMP部署了一个简单的服务器,提供一个对外服务:http://192.168.1.107:8888/sss/Archive.zip
2 下载zip文件
主要思路: 通过http下载zip文件,然后另外到服务器上指定的文件夹下,并重命名。
代码
/// d ##class(web.test.DownloadFile).DownloadFile()
ClassMethod DownloadFile()
{
set filePath="E:\testdata"
set fileName="BCMData"_$zd(+$h,8)_".zip"
Set httprequest=##class(%Net.HttpRequest).%New()
set httprequest.Port=8888
Set httprequest.Server="192.168.1.107"
set httprequest.ContentCharset="UTF-8" ;编码字符集
set status= httprequest.Get("/sss/Archive.zip")
//w !,status
set dataStream = ##class(%Stream.GlobalCharacter).%New()
Set dataStream=httprequest.HttpResponse.Data
Set stream=##class(%FileBinaryStream).%New()
Set stream.Filename=filePath_"\"_fileName
Set status=stream.CopyFromAndSave(dataStream)
//解压文件
d ##class(web.test.DownloadFile).UnZip(filePath,fileName)
}


.png)


