我正在尝试下载包含许多文件(各种类型)的zip文件-虽然确实下载了zip文件,但不幸的是,当我尝试打开它时会引发以下错误:
图像使用天蓝色斑点存储。
如有任何想法,请提供帮助。
我的Vue.js前端有一个按钮,它调用以下内容:
GetallAssetResources ({commit},id)
{
console.log("Getting Asset Resources:" + id);
return new Promise((resolve) => {
axios.get(CONFIG.platformEndPoints+ '/asset/downloadResources/' + id)
.then( (response) => {
const url = window.URL.createObjectURL(new Blob([response.data]));
const link = document.createElement('a');
link.href = url;
link.setattribute('download','resources.zip');
document.body.appendChild(link);
link.click();
})
})
}
这将调用我的控制器方法(使用C#):
[HttpGet]
public async Task<IactionResult> DownloadResources(string guid)
{
return File(await _ResourceService.DownloadAllAssetResources(guid),MediaTypeNames.Application.Octet,"resources");
}
这称为我的服务
public async Task<byte[]> DownloadAllAssetResources(string guid)
{
var assetDetails = await _AssetDetails.FindAsync(guid);
var resources = assetDetails.res.ToList();
byte[] archiveFile;
await using (var archiveStream = new MemoryStream())
{
using (var archive = new ZipArchive(archiveStream,ZipArchiveMode.Create,true))
{
foreach (var file in resources)
{
var fileName = guid+ "_" + file.name;
var zipArchiveEntry = archive.CreateEntry(fileName,CompressionLevel.Fastest);
var bytes = await _Storage.GetBytes("resources",fileName);
await using (var zipStream = zipArchiveEntry.Open())
{
zipStream.Write(bytes,bytes.Length);
}
}
}
archiveFile = archiveStream.ToArray();
}
return archiveFile;
}