gpt4 book ai didi

asp.net-mvc-4 - Windows Azure blob zip 并发送到客户端 (ASP.NET MVC)

转载 作者:行者123 更新时间:2023-12-02 07:37:28 27 4
gpt4 key购买 nike

我在 Windows Azure blob 容器中存储了一些文件(假设 file1.txt 和 file2.txt)。在 ASP.NET MVC4 应用程序(托管在 azurewebsites 上)中,我需要创建一个“下载为 zip”链接。当用户单击它时,他会得到一个包含两个 txt 文件的 zip 文件。我很难编写 Controller 方法来完成此任务:-( 有人可以提供简短的示例吗?非常感谢。

最佳答案

这是一些代码。代码为原始格式,请根据您的使用情况增强它。我使用了 DotNetZip 和 Table Storage Nugets。

生成 Zip 的代码 -

    using (ZipFile zip = new ZipFile())
using(MemoryStream stream = new MemoryStream())
{
BlobRepository rep = new BlobRepository();

// Download files from Blob storage
byte[] b = rep.DownloadFileFromBlob(filename);

zip.AddEntry("sample1", b);
//add as many files as you want

zip.Save(stream);
// use that stream for your usage.
}

下载 blob 的代码 -

public byte[] DownloadFileFromBlob(string filename)
{
// Get Blob Container
CloudBlobContainer container = BlobUtilities.GetBlobClient.GetContainerReference(BlobUtilities.FileContainer);
// Get reference to blob (binary content)
CloudBlockBlob blockBlob = container.GetBlockBlobReference(filename);
// Read content
using (MemoryStream ms = new MemoryStream())
{
blockBlob.DownloadToStream(ms);
return ms.ToArray();
}
}

Blob 实用程序帮助程序类 -

internal class BlobUtilities
{
public static CloudBlobClient GetBlobClient
{
get
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse("connection string here");
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
return blobClient;
}
}
public static string FileContainer
{
get
{
return "container name here";
}
}
}

关于asp.net-mvc-4 - Windows Azure blob zip 并发送到客户端 (ASP.NET MVC),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20948387/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com