azure image blob提示下载选项

时间:2015-03-07 20:35:32

标签: php azure blob azure-storage-blobs

好吧我有人发现如何在azure上使用php上传容器中的blob,但是即使我使用像https://my.blob.url.net/my_image_folder/my_image_name.jpg这样的简单URL查看图像,浏览器也会提示下载图像,而不是查看图像,像在浏览器上查看普通图像一样,这是我在上传时使用的代码

<?php
    require_once __DIR__.'/vendor/autoload.php';
    use WindowsAzure\Common\ServicesBuilder;
    $connectionString = 'DefaultEndpointsProtocol=http;AccountName=account_name;AccountKey=my_key_value';
    $blobRestProxy = ServicesBuilder::getInstance()->createBlobService($connectionString);
    $content = fopen('folder/image.jpg','r');
    $blob_name = 'image_name.jpg';
    try
    {
        $blobRestProxy->createBlockBlob("container_name", $blob_name, $content);
    }
    catch(ServiceException $e)
    {
        $code = $e->getCode();
        $error_message = $e->getMessage();
        echo $code.": ".$error_message."<br />";
    }

此代码工作正常,但在访问网址时,会提示下载选项,这意味着我无法使用img html标记

2 个答案:

答案 0 :(得分:3)

您必须将blob的内容类型设置为适当的mime类型。以下是C#中的一个片段,展示了如何做到这一点:

entryData.DestinationBlob.Properties.ContentType = "image/jpeg";
entryData.DestinationBlob.SetProperties();

答案 1 :(得分:1)

我们需要通过Blob Options类设置其属性Content类型。

PHP:

  def project do
    {result, _exit_code} = System.cmd("git", ["rev-parse", "HEAD"])
    git_sha = String.slice(result, 0, 7)

    [app: :evercam_media,
     version: "1.0.1-a#{git_sha}",
     elixir: "~> 1.7",
     elixirc_paths: elixirc_paths(Mix.env),
     build_embedded: Mix.env == :prod,
     start_permanent: Mix.env == :prod,
     compilers: [:phoenix] ++ Mix.compilers,
     aliases: aliases(),
     deps: deps()]
  end

$ mimeType 是文件text / html,text / pdf的类型。它将在git中工作。
软件包::“ microsoft / windowsazure”:“ ^ 0.5”