好吧我有人发现如何在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标记
答案 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”