我正在尝试用 Javascript 恢复压缩的 ZIP 文件。我能够将 zip 文件转换为 Base64 字符串格式。 (Zip 文件位于服务器中)
这是我的尝试(在服务器端)
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();
关于c# - 如何从 JavaScript 中的 Base64 字符串获取 ZIP 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24532609/