[英]How to get the ZIP file from Base64 string in Javascript?
我正在尝试用Javascript重新获得压缩的ZIP文件。 我可以将zip文件转换为Base64 String格式。 (压缩文件在服务器中)
这是我的尝试(在服务器端)
System.IO.FileStream fs = new System.IO.FileStream(SourceFilePath + "Arc.zip", System.IO.FileMode.Open);
Byte[] zipAsBytes = new Byte[fs.Length];
fs.Read(zipAsBytes, 0, zipAsBytes.Length);
String base64String = System.Convert.ToBase64String(zipAsBytes, 0, zipAsBytes.Length);
fs.Close();
if (zipAsBytes.Length > 0)
{
_response.Status = "ZipFile";
_response.Result = base64String;
}
return _json.Serialize(_response);
这部分代码返回JSON数据。 此JSON数据包含Base64字符串。 现在,我要做的是从Base64字符串获取原始zip文件。 我通过互联网搜索,但不知道。
这是可以实现的吗?
这是可以实现的。 首先,您必须将Base64字符串转换为Arraybuffer。 可以使用以下功能完成:
function base64ToBuffer(str){
str = window.atob(str); // creates a ASCII string
var buffer = new ArrayBuffer(str.length),
view = new Uint8Array(buffer);
for(var i = 0; i < str.length; i++){
view[i] = str.charCodeAt(i);
}
return buffer;
}
然后,使用类似JSZip的库,您可以将ArrayBuffer转换为Zip文件并读取其内容:
var buffer = base64ToBuffer(str);
var zip = new JSZip(buffer);
var fileContent = zip.file("someFileInZip.txt").asText();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.