【问题标题】:Download a Blob in JavaScript在 JavaScript 中下载 Blob
【发布时间】:2016-02-27 12:53:35
【问题描述】:

我创建了一个带有 WCF REST 服务的 Azure 云服务。我正在使用 blob 进行本地存储开发。此时,我已经能够从我的计算机上传文件到容器中,并在 Listbox1 中列出它们。现在,我需要从我的 Listbox1 中选择一个项目(blob)并下载所选项目。 这是我的代码:

public void DownloadBlob(AzureDataContract download) {
    // Connect to the storage account's blob endpoint 
    CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("AzureStorageConnectionString"));
    CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

    // Create the blob storage container 
    CloudBlobContainer container = blobClient.GetContainerReference(download.ContainerName);
    container.CreateIfNotExists();

    // Create the blob in the container 
    CloudBlockBlob blob = container.GetBlockBlobReference("test");

    using (var fileStream = System.IO.File.OpenWrite(download.FilePath))
    {
        blob.DownloadToStream(fileStream);
    }
}

然后我尝试使用 JQuery 和 Ajax 调用我的方法,如下所示:

$('#btnDownload').click(function() {
  var download = {
    "ContainerName": $("#listContainer").val(),
    "FilePath": $("#listBlob option:selected").val()
  };
  $.ajax({
    type: "POST",
    url: "http://localhost:49416/AzureService.svc/DownloadBlob",
    data: JSON.stringify(download),
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    processData: true,
    success: function(data) {
      alert("downloading");
    },
    error: function(data) {
      alert("error");
    }
  });

});

【问题讨论】:

  • 您遇到任何错误吗?
  • 是的,我有这个问题:mscorlib.dll 中发生了“System.UnauthorizedAccessException”类型的异常,但未在用户代码中处理其他信息:访问路径“C:\”被拒绝.我已经创建了一个输入来设置我的路径

标签: javascript jquery wcf rest azure


【解决方案1】:

此时,您的 DownloadBlob 函数没有返回任何内容。这是一个空函数。所以你的客户永远不会收到 blob。它目前正在做的是将 blob 写入服务器磁盘上的文件 (download.FilePath)。如果你想在你的 rest 调用中下载任何东西,你应该把文件返回给客户端。

【讨论】:

    【解决方案2】:

    您的代码看起来不错。运行后,blob 文件应该已下载到您的“FilePath”位置。当您无权删除/创建文件夹下的文件时,通常会发生“System.UnauthorizedAccessException”。我认为您可以检查您是否具有对“FilePath”位置的写入权限。

    【讨论】:

      猜你喜欢
      • 2022-01-22
      • 2021-11-06
      • 2019-03-19
      • 1970-01-01
      • 2020-10-14
      • 2015-05-21
      • 2013-11-09
      • 2011-05-27
      • 1970-01-01
      相关资源
      最近更新 更多