Хорошо, кто-то узнает, как загрузить BLOB-объекты в контейнере с использованием php на Azure, но когда я даже просматриваю изображение с простым URL-адресом, как https://my.blob.url.net/my_image_folder/my_image_name.jpg
браузер предлагает загрузить изображение, вместо просмотра изображения, как в браузере просматривается обычное изображение, вот код, который я использую при загрузке
<?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();
Нам нужно установить его свойство Content type через класс Blob Options.
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»