将base64EncodedData转换为二进制文件,并将其作为文件下载到Postman中

jfgube3f  于 8个月前  发布在  Postman
关注(0)|答案(1)|浏览(138)

我正在自动化一组新的API,遇到的一个问题是其中一个API返回了一个base64编码的文件。例如:

var base64EncodedData=iVBORw0KGgoAAAANSUhEUgAAAMsAAAAyCAYAAADyZi/iAAADsElEQVR42u2aMWgUQRSGwxVBJI2E4wiSJsgRJNiIpDhEBLGQKyRgIUFCEIJISGUnFiIBkRQpJK1YhECwSiGBIFcEsZEQgkgaEREJEpBDRIIcrG9gDsdxbnd2s7u3d34fPEKSebM7M++fffN2BwYAAAAAAAAAAAAAAKDXCCwyukZJ7JbYutgnsZ9irayvC38W4GLgoMfGsGbdvgqisQT9nNG+JqtFEIt0OS62H0RARGcXZCfFPvSBWIbFvlpD2E7Qz7bVh+pzuNtike6G9JMkQCzdC7Llfpl0ueUbjmHMx/BfcPhPFSENk+7uW91/FLsiNkgU5xNcNWPym/2wQ+lc3uS72KiH35jYD8v3RVHOLNJdw+r+MhGcX1CdsNKv230ilrLYoTWULQ+/Lcvnm1ilQGKxhVwiivMLqiVj4ht5VXNyGtu0I52aDWl/x9F+ukjVMCpe3QumSWPej9pVo6wWW7q6pqtVB2K/dLVpV+xR2OFZ/ld3+O2JPREbibjmhuNJMeJoN6pTNZONhOPsOH/GHDSNseyILUaNpZ82sl4TyqBVfryXxoK4fHVK9CqieKNSpktWXxWx1xF+KvivhtzPiG4TKgJH+tX0Cd4Yc6CqdJsRY1FirUf1RyUsf7E8NuZ2N63dy7Fup8Teea6xCpaqEeRfPP3U7jwRck+zDp+bxv9n4qRrCeZAlXvfeo5FPW0mEUtxhHLBmFeVA5/NUCzrxnuK+fZurZ9sMzq1Mmnot9M7+vcDT783MQ/uh3q3dz15No85vzar+udnfS4q63bq3dacoxCxh1iKk369N+Z1Mc28uMPa7bcDxNG+qs9Lf5VqE/rVQu7LdSZZc5xpVJvTKYsl0E/XTmM5bx/c1dcUnFm6L5aHVhAPZiyWf55cDp+nHfzGI/xWLJ+liPZzHpvy3RTm2JVaVSN8nlk+y4ilu0I5Z+1gtbQXxBEoax4+dVfqksDvpYdPWKGhkdI82zz38JnySQURSz5CKVkH7ZUsypNJPhPRRYA0/JoePq439IH+21hGYrnu4VP2GQtiyT/9UlWmoZzEUvEUchp+R5736Pr2ayHFuc5sLIgle6FMWOlXPc5iHydQcvZrZX29bo8FsWSffu3FPEP0qliCPhJLgFjyF8sD6233MGJBLOCe3FbcjwIRC2L5X8WSOogFsSAWxIJYEAtiQSyQi8A4syAWQCyIBRALYgHEglgQC2JBLIgFsSAWxIJYEAtiAQAAAAAAAAAAAAAAAAAAAAAAAACAAvIbRNwB01NnU/AAAAAASUVORK5CYII=

我想从这个编码文件创建一个图像文件。已尝试使用“atob”多种方式将base64转换为二进制格式。然而,一旦我以字节数组的形式获得了二进制数据,我就无法将其下载到本地以在下一个请求中使用它。
逻辑1://将base64 EncodedData转换为二进制并登录控制台。

atob(response.base64EncodedData)
console.log(atob(response.base64EncodedData));

//用于将base64编码数据转换为byteArray的逻辑。

var binaryData = atob(response.base64EncodedData);
var byteArray = new Uint8Array(binaryData.length);
for (var i = 0; i < binaryData.length; i++) {
    byteArray[i] = binaryData.charCodeAt(i);
    console.log(byteArray[i])
}

逻辑1:我能够将base64 EncodedData转换为二进制并将其记录在控制台上。然而,还无法下载它作为一个png文件到我的本地。逻辑2:我能够将base64 EncodedData转换为字节数组,但仍然无法将其转换为文件。
我使用以下逻辑将其隐藏到文件中,但不幸的是:

const buffer = Buffer.from(byteArray);
const folderPath = 'C:/test/downloadedFile/';
const fileName = 'example.png'; 
const filePath = folderPath + fileName;
fs.writeFileSync(filePath, byteArray);

这会抛出TypeError:fs.writeFileSync不是函数
有人能帮我解决这个问题吗?

wmvff8tz

wmvff8tz1#

据我所知,这在 Postman 身上是不可能的。相反,您可以创建一个本地自定义Web服务/API,并在获得base64响应后访问该端点。本地API应负责将其转换为文件并将其存储到本地文件系统。
相关参考:Automate to convert base64 decoded value to PDF file and download it to pc

替代解决方案-1:手册下载

YouTube: Upload, Download, and Visualize Files in Postman

替代解决方案-2:展示台

另一种方法是可视化图像或文件。但这在自动化中并不实用。

相关问题