天蓝色图像 blob 提示下载选项

azure image blob is prompting download option

好吧,我有人知道如何在 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 />";
    }

此代码运行良好,但在访问 url 时提示下载选项,这意味着我无法使用 img html 标签

您必须将 blob 的内容类型设置为适当的 mime 类型。以下是 C# 中的一个片段,展示了如何完成此操作:

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

我们需要通过 Blob 选项设置它的 属性 内容类型 class。

PHP :

namespace - use MicrosoftAzure\Storage\Blob\Models\CreateBlobOptions;

//use code where you are creating blob
$opts = new CreateBlobOptions();

//$opts->setCacheControl('test');
$opts->setContentEncoding('UTF-8');
$opts->setContentLanguage('en-us');

//$opts->setContentLength(512);
$opts->setContentMD5(null);
$opts->setContentType($mimeType);
$blobRestProxy->createBlockBlob($containerName, $indexFile, $content,$opts);

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