文章 li dong · 十月 20, 2022 3m read

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)
    
}

2
0 609