0

以下のコードは、Azure BLOB からファイルをダウンロードするためのものです。私は.docx、.xlsxファイルに問題があり、展開後のみ、ローカルマシンで正常に動作していることを意味します。

問題は、.xlsx または .docx をダウンロードした後、そのファイルを開くと、ファイルが破損しているポップアップが表示されることです。

public void DownloadBlob(string blobName)
{
    //You have to get values for below items from azure
    string accountName = "MyAccName";
    string accountPrimaryKey = "MyKey";
    string blobContainer = "ContainerName";
    CloudStorageAccount account = new CloudStorageAccount(new StorageCredentialsAccountAndKey(accountName, accountPrimaryKey), false);
    CloudBlobClient blobClient = account.CreateCloudBlobClient();
    CloudBlobContainer container = blobClient.GetContainerReference(blobContainer);
    CloudBlob blob = container.GetBlobReference(blobName);
    MemoryStream memStream = new MemoryStream();
    blob.DownloadToStream(memStream);

    Response.ContentType = blob.Properties.ContentType;
    Response.AddHeader("Content-Disposition", "Attachment; filename=" + blobName.ToString());
    Response.AddHeader("Content-Length", (blob.Properties.Length - 1).ToString());
    Response.BinaryWrite(memStream.ToArray());
    Response.End();
}
4

1 に答える 1

1

スティーブが長さを間違って設定していると示唆したように、コードに問題があると確信しています。

私は昨年、同様の問題に取り組み、以下のようにブログで解決策を文書化しました。

http://blogs.msdn.com/b/avkashchauhan/archive/2011/04/05/downloading-word-and-excel-files-from-windows-azure-storage-in-a-asp-net-web-役割.aspx

于 2012-05-08T17:10:20.643 に答える