Jen*_*nsB 8 azure azure-blob-storage
这个问题不久前已经被问过。我希望今天的答案有所不同。
我正在使用 Azure blob 存储来保存网站的图像 (jpg)。我直接链接到标签中的文件<img>,效果很好(已启用匿名访问)。问题是,如果用户单击图像(直接链接到文件),他们将被迫下载它并且无法在浏览器中查看它。
有没有办法设置 Blob 存储的标头,以允许直接在浏览器中查看而不强制下载。
更新1:
基于此How can I view an image from Azure Blob Storage,而不是下载它?这个https://social.msdn.microsoft.com/Forums/windowsapps/en-US/b8759195-f490-420b-a587-2bb614366ad2/embedding-images-from-blob-storage-in-ssrs-report-does-不行
我发现我没有设置内容类型,这导致了问题。我需要将其设置为"image/jpeg". 不过我不太确定该怎么做。这是我用来存储图像的代码。
using Microsoft.Azure.Storage.Blob
/// <summary>
/// Save a file to azure blob storage.
/// </summary>
/// <param name="name">Name of file</param>
/// <param name="file">filestream</param>
/// <param name="ct">Cancellationtoken</param>
public async Task<bool> SaveFile(Stream fileStream, string fileName, CancellationToken ct)
{
CloudBlockBlob cloudBlockBlob = _blobContainer.GetBlockBlobReference(fileName);
fileStream.Position = 0;
await cloudBlockBlob.UploadFromStreamAsync(fileStream, ct);
return true;
}
Run Code Online (Sandbox Code Playgroud)
我还没有找到任何类型的“.Content”或“Type”属性。会继续挖掘。
更新2:可能已经找到解决方案:
cloudBlockBlob.Properties.ContentType = "image/jpg";
Run Code Online (Sandbox Code Playgroud)
测试
更新3:就这样了。使用它为图像和 pdf 设置正确的内容类型,现在可以在浏览器中查看它们。
if (fileName.EndsWith(".jpg"))
{
cloudBlockBlob.Properties.ContentType = "image/jpg";
}
else if (fileName.EndsWith(".pdf"))
{
cloudBlockBlob.Properties.ContentType = "application/pdf";
}
Run Code Online (Sandbox Code Playgroud)
详情请参阅问题。但设置内容类型可以通过以下方式完成:
cloudBlockBlob.Properties.ContentType = "image/jpg";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3470 次 |
| 最近记录: |