.net - Azure Blob 存储 - 使用文件流/内存流显示 PDF

标签 .net asp.net-mvc vb.net azure azure-blob-storage

我已经设置了 Azure Blob Storage上传/下载文件。

ProcessAsync(Folderpath, rows.Item("FileName"), rows.Item("Extension")).GetAwaiter().GetResult()
System.IO.File.Move(Folderpath + "\" + rows.Item("FileName"), AchivePath + "\" + rows.Item("FileName"))
WriteToLog("Extracted File : " + rows.Item("FileName") + " ", "")
DownloadBlobSnapshot(rows.Item("FileName"), rows.Item("Extension")).GetAwaiter().GetResult()

目前,我可以将文件本地存储在我的桌面上。如何使用 Using.net MVC 平台上保存并显示文件和 MemoryStream/FileStream

或者,有没有更好的方法?

编辑 1:(基于 Ivan 的回答)

Private Shared Async Function DownloadBlobSnapshot(FileName As String, Extension As String) As Task

Dim storageAccount As CloudStorageAccount
Dim storageConnectionString As String = ConfigurationManager.AppSettings("StorageConnectionString")
Dim accountName As String = myaccountname
Dim accountKey As String = myaccountkey
Dim cred = New StorageCredentials(accountName, accountKey)
Dim account = New CloudStorageAccount(cred, True)
Dim client = account.CreateCloudBlobClient()
Dim container = client.GetContainerReference(FileName.Replace(Extension, ""))
Dim listOfBlobs As IEnumerable = container.ListBlobs(Nothing, True, BlobListingDetails.Snapshots)

If CloudStorageAccount.TryParse(storageConnectionString, storageAccount) Then
   For Each item In listOfBlobs
       Dim blockBlob As CloudBlockBlob = container.GetBlockBlobReference((CType(item, CloudBlockBlob)).Name)
       blockBlob.DownloadToStream(Response.OutputStream)
   Next
       //ToDO
        End If
End Function

但我意识到 ResponseShared 函数中不可用。

最佳答案

您可以使用DownloadToStream

示例代码如下(asp.net mvc项目):

        public ActionResult DownloadFile()
        {
            CloudStorageAccount storageAccount = new CloudStorageAccount(new StorageCredentials("your_account", "your_key"),true);
            CloudBlobClient client = storageAccount.CreateCloudBlobClient();
            CloudBlobContainer blobContainer = client.GetContainerReference("t11");
            CloudBlockBlob blob = blobContainer.GetBlockBlobReference("ss22.pdf");

            blob.DownloadToStream(Response.OutputStream);

            return new EmptyResult();
        }

更新1:上传vb.net mvc项目的截图: enter image description here

关于.net - Azure Blob 存储 - 使用文件流/内存流显示 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53439499/

相关文章:

vb.net - ListView 工具提示闪烁

c# - 报告哈希进度

.net - 为什么创建一个新线程很昂贵?

.net - WPF中如何使用DrawThemeTextEx

c# - 将 C# 对象转换为 JSON 或 Javascript 对象

.net - 无法了解Messagebox如何使用字符串

c# - 从多个线程读取SQL数据

c# - 如何通过普通路由重定向

c# - MVC 4 回发空 View 模型

javascript - JSON.stringify 和 JSON.parse 不能在 IE9 中工作